分享

自学资料(Excel VBA)[收集整理2]

 COPY&PASTE 2009-10-15

自学资料(Excel VBA)[收集整理2]

默认分类   2009-08-01 11:49   阅读60   评论0  
字号:    
25、在当前工作表翻页
    Application.SendKeys "{PGUP}", True
    Application.SendKeys "{PGDN}", True
或者
    ActiveWindow.LargeScroll Down:=1
    ActiveWindow.LargeScroll Down:=-1
26、当Target = "*小计"时如何写,*代表任何字符。
if instr(target.value,"小计")<>0 then
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Value Like "*小计" Then MsgBox "OK"
End Sub
27、ActiveCell.FormulaR1C1 = "=SUM(R[1]C:R[14]C,R[59]C:R[78]C)"
这是相对引用的写法:根据推算你的函数是放在“AD6”单元格
你的函数:=SUM(R[1]C:R[14]C  中的  "R"表示行    "C"表示列。
R[1]表示“AD6+1行",C表示“列没有变化,就是同列”那么:R[1]C就表示AD7
同理,R[14]表示AD6+14行,表示:AD20。以此类推。
28、Private Sub CommandButton1_Click()'将A1到C6中大于=3的数依次放入E列
Dim i As Long
Dim iRng As Range
For Each iRng In Sheets(1).Range("a1:c6")
  If iRng.Value >= 3 Then
    i = i + 1
    Sheets(1).Range("E" & i).Value = iRng.Value
  End If
Next
End Sub
29、工作表中的窗体按钮禁用后,按钮形状不变,字体不变,从外表上无法看出其已禁用,如何设置属性使其像控件按纽那样明显的禁用?
With ActiveSheet.Buttons(1)
        .Enabled = False
        ActiveSheet.Shapes(.Caption).DrawingObject.Font.ColorIndex = 15
    End With
復原的方法
    With ActiveSheet.Buttons(1)
        .Enabled = True
        ActiveSheet.Shapes(.Caption).DrawingObject.Font.ColorIndex = xlAutomatic
    End With
30、Private Sub Worksheet_SelectionChange(ByVal Target As Range'选定A1时要输入密码
If Target.Address = "$A$1" Then
    A = InputBox("请输入密码", "officefans")
    If A = 1 Then [A1].Select Else [A2].Select
End If
End Sub
31、如何将工作薄中的命名单元格成批删除!
Dim Item As Name
    For Each Item In ActiveWorkbook.Names
        Item.Delete
    Next Item
32、平时只能看到表1,如要看表2和表3,只能通过表1的链接打开,且表2和表3回到表1后,又不可见。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Address = "$A$3" Then  '当点击"$A$3"单元格时...
    Sheet2.Visible = 1  '取消隐藏
  Sheet2.Activate '激活
  ActiveSheet.Range("A1").Select
End If
If Target.Address = "$A$6" Then
Sheet3.Visible = 1  '取消隐藏
Sheet3.Activate
ActiveSheet.Range("A1").Select
End If
End Sub
33、将a2单元格内容替换为a1内容
ActiveCell.Replace What:=[a2], Replacement:=[a1]
34、如果是要填入名称,则:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Selection.Value = ComboBox1.column(1)
End Sub
如果是要填入代码和名称的组合 :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Selection.Value = cstr(ComboBox1.column(0))+" "+combobox1.column(1)
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Selection.Value = ComboBox1.Value
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    'target.row  代表行号
    'target.column 代表列号
    i=target.row  '获取行号
    j=target.column '获取列号
End Sub
35、当激活工作表时,本示例对 A1:A10 区域进行排序。
Private Sub Worksheet_Activate()
    Range("a1:a10").Sort Key1:=Range("a1"), Order:=xlAscending
End Sub
36、BeforePrint 事件
参阅应用于示例特性在打印指定工作簿(或者其中的任何内容)之前,产生此事件。
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Cancel      当事件产生时为 False。如果该事件过程将本参数设为 True,则当该过程运行结束之后不打印工作簿。
示例
本示例在打印之前对当前活动工作簿的所有工作表重新计算。
Private Sub Workbook_BeforePrint(Cancel As Boolean)
    For Each wk in Worksheets
        wk.Calculate
    Next
End Sub
37、Open 事件
参阅应用于示例特性打开工作簿时,将产生本事件。
Private Sub Workbook_Open()
示例
每次打开工作簿时,本示例都最大化 Microsoft Excel 窗口。
Private Sub Workbook_Open()
    Application.WindowState = xlMaximized
End Sub
38、ActiveSheet 属性
参阅应用于示例特性返回一对象,该对象代表活动工作簿中的,或者指定的窗口或工作簿中的活动工作表(最上面的工作表)。只读。如果没有活动的工作表,则返回 Nothing。
说明
如果未给出对象识别符,本属性返回活动工作簿中的活动工作表。
如果某一工作簿在若干个窗口中出现,那么该工作簿的 ActiveSheet 属性在不同窗口中可能不同。
示例
本示例显示活动工作表的名称。
MsgBox "The name of the active sheet is " & ActiveSheet.Name
39、Calculate 方法
参阅应用于示例特性计算所有打开的工作簿、工作簿中的一张特定的工作表或者工作表中指定区域的单元格,如下表所示:
要计算 依照本示例
所有打开的工作簿 Application.Calculate (或只是 Calculate)
指定工作表 指定工作表
指定区域 Worksheets(1).Rows(2).Calculate
expression.Calculate
expression      对于 Application 对象可选,对于 Worksheet 对象和 Range 对象必需。该表达式返回“应用于”列表中的对象之一。
示例
本示例计算 Sheet1 已用区域中 A 列、B 列和 C 列的公式。
Worksheets("Sheet1").UsedRange.Columns("A:C").Calculate
程序的核心是算法问题
40、End 属性
参阅应用于示例特性返回一个 Range 对象,该对象代表包含源区域的区域尾端的单元格。等同于按键 End+ 向上键、End+ 向下键、End+ 向左键或 End+ 向右键。Range 对象,只读。
expression.End(Direction)
expression      必需。 该表达式返回“应用于”列表中的对象之一。
Direction      XlDirection 类型,必需。所要移动的方向。
XlDirection 可为 XlDirection 常量之一。
xlDown
xlToRight
xlToLeft
xlUp
示例
本示例选定包含单元格 B4 的区域中 B 列顶端的单元格。
Range("B4").End(xlUp).Select
本示例选定包含单元格 B4 的区域中第 4 行尾端的单元格。
Range("B4").End(xlToRight).Select
本示例将选定区域从单元格 B4 延伸至第四行最后一个包含数据的单元格。
Worksheets("Sheet1").Activate
Range("B4", Range("B4").End(xlToRight)).Select
41、应用于 CellFormat 和 Range 对象的 Locked 属性。
本示例解除对 Sheet1 中 A1:G37 区域单元格的锁定,以便当该工作表受保护时也可对这些单元格进行修改。
Worksheets("Sheet1").Range("A1:G37").Locked = False
Worksheets("Sheet1").Protect
42、Next 属性
参阅应用于示例特性返回一个 Chart、Range 或 Worksheet 对象,该对象代表下一个工作表或单元格。只读。
说明
如果指定对象为区域,则本属性的作用是仿效 Tab,但本属性只是返回下一单元格,并不选定它。
在处于保护状态的工作表中,本属性返回下一个未锁定单元格。在未保护的工作表中,本属性总是返回紧靠指定单元格右边的单元格。
示例
本示例选定 sheet1 中下一个未锁定单元格。如果 sheet1 未保护,选定的单元格将是紧靠活动单元格右边的单元格。
Worksheets("Sheet1").Activate
ActiveCell.Next.Select
43、想通过target来设置(A1:A10)区域内有改动,就发生此事件。不知道如何
if target.row = 1 and target.column <=10 then
Sub 列举菜单项()
Dim r, s, i As Integer
r = 1
For i = 1 To CommandBars.Count
    ActiveSheet.Cells(r, 1) = "CommandBars(" & i & ").Name:" & CommandBars(i).Name
    r = r + 1
    For s = 1 To CommandBars(i).Controls.Count
        ActiveSheet.Cells(r, 1) = s & "、" & CommandBars(i).Controls(s).Caption
        r = r + 1
    Next
Next
End Sub
44、本示例设置 Microsoft Excel 每当打开包含链接的文件时,询问用户是否更新链接。
Application.AskToUpdateLinks = True

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多