酒小七作品集下载:自学资料(Excel VBA)[收集整理14]1
来源:百度文库 编辑:九乡新闻网 时间:2024/04/30 21:46:28
自学资料(Excel VBA)[收集整理14]
默认分类 2009-08-01 12:13 阅读注意先引用"Microsoft Scripting Runtime"
Private Sub Workbook_BeforeClose(Cancel As Boolean)
' 在本文件要關閉前,執行備份動作。
If Not ActiveWorkbook.Saved Then Exit Sub ' 若原文件未存檔,備份檔也不存。
ThisPath = ThisWorkbook.Path
' 假定備份文件夾之名稱為"BAK",若本文件是備份檔,則不需再備份。
If Len(Application.WorksheetFunction.Substitute(ThisPath, "BAK", "")) < Len(ThisPath) Then Exit Sub
Bak = ThisPath & "\" & "BAK"
'檢查備份文件夾是否存在,若不存在,就建立一個。
If Len(Dir(Bak, vbDirectory)) > 0 Then
If (GetAttr(Bak) And vbDirectory) = vbDirectory Then GoTo 3 ' 若已存在,跳到下一步。
End If
MkDir Bak ' 建立備份文件夾。
' 改變目前路徑到備份文件夾路徑,並備份之。
3 ChDir Bak
Application.EnableEvents = False ' 避免執行BeforeSave事件。
Application.DisplayAlerts = False ' 避免顯示是否要覆蓋原備份文件之訊息。
ActiveWorkbook.SaveAs
ChDir ThisPath ' 改變目前路徑回到原文件夾路徑。
Application.DisplayAlerts = True
Application.EnableEvents = True
End Sub
上述程式有個漏洞,就是在本文件做過更動,且存檔過了,但最後一次的更動未存檔,則 If Not ActiveWorkbook.Saved Then Exit Sub 這個判斷會造成不存備份檔之錯誤決定。
若想彌補上述錯誤,將觸發的事件改成Workbook_BeforeSave,卻會造成Excel關閉的錯誤。
78、文件保存为以某一单元格中的值为文件名的宏怎么写
用命令: ActiveWorkbook.SaveCopyAs Str(Range("Sheet1!A1")) + ".xls"
79、Offset 属性
参阅应用于示例特性应用于 Range 对象的 Offset 属性。
返回一个 Range 对象,该对象代表某个指定区域以外的区域。只读。
expr
expr
RowOffset Variant 类型,可选。区域偏移的行数(正值、负值或 0(零))。正值表示向下偏移,负值表示向上偏移,默认值为 0。
ColumnOffset Variant 类型,可选。区域偏移的列数(正值、负值或 0(零))。正值表示向右偏移,负值表示向左偏移,默认值为 0。
应用于 TickLabels 对象的 Offset 属性。
返回或设置各级别标签之间的距离以及第一级标签与坐标轴之间的距离。其默认距离为百分之百,代表坐标轴标签与坐标轴之间的默认距离。其值可以为从 0 到 1000 之间的一个整数百分比,表示相对于坐标轴标签的字体大小。Long 类型,可读写。
expr
expr
示例
应用于 Range 对象。
本示例激活 Sheet1 上活动单元格向右偏移三列、向下偏移三行处的单元格。
Worksheets("Sheet1").Activate
ActiveCell.Offset(rowOffset:=3, columnOffset:=3).Activate
本示例假定 Sheet1 中包含一个具有标题行的表格。本示例先选定该表格,但并不选择标题行。运行本示例之前,活动单元格必须位于表格中。
Set tbl = ActiveCell.CurrentRegion
tbl.Offset(1, 0).Resize(tbl.Rows.Count - 1, _
tbl.Columns.Count).Select
应用于 TickLabels 对象。
如果偏移量小于 500,则本示例将 Chart1 中数值轴上标签之间的距离设置为当前距离的两倍。
With Charts("Chart1").Axes(xlValue).TickLabels
If .Offset < 500 then
.Offset = .Offset * 2
End If
End With
80、新建工作簿
参阅特性若要在 Visual Basic 中创建新的工作簿,请使用 Add 方法。下述过程创建了新的工作簿。Microsoft Excel 自动将该工作簿命名为“BookN”,其中“N”是下一个可用的数字。新工作簿将成为活动工作簿。
Sub AddOne()
Workbooks.Add
End Sub
创建新工作簿更好的方法是将其分配给一个对象变量。下例中,由 Add 方法返回的 Workbook 对象分配给了对象变量 newBook。然后,又设置了 newBook 的若干属性。使用对象变量可以很容易地控制新工作簿。
Sub AddNew()
Set NewBook = Workbooks.Add
With NewBook
.Title = "All Sales"
.Subject = "Sales"
.SaveAs Filename:="Allsales.xls"
End With
End Sub
转载自 http://bbs.it.com.cn/showtopic-169943.aspx
自学资料(Excel VBA)[收集整理14]1
自学资料(Excel VBA)[收集整理1]1
自学资料(Excel VBA)[收集整理3]1
自学资料(Excel VBA)[收集整理2]1
自学资料(Excel VBA)[收集整理4]1
自学资料(Excel VBA)[收集整理5]1
自学资料(Excel VBA)[收集整理6]1
自学资料(Excel VBA)[收集整理7]1
自学资料(Excel VBA)[收集整理8]1
自学资料(Excel VBA)[收集整理9]1
自学资料(Excel VBA)[收集整理10]1
自学资料(Excel VBA)[收集整理11]1
自学资料(Excel VBA)[收集整理12]1
自学资料(Excel VBA)[收集整理13]1
自学资料(Excel VBA)[收集整理15]1
自学资料(Excel VBA)[收集整理7]
自学资料(Excel VBA)7[收集整理7]
自学资料(Excel VBA)[收集整理03]
自学资料(Excel VBA)[收集整理13]
VBA自学收集资料(一)
VBA自学收集资料(五)
VBA自学收集资料(六)
VBA自学收集资料(七)
VBA自学收集资料(八)