|
自學(xué)資料(Excel VBA)[收集整理2] 25、在當(dāng)前工作表翻頁
Application.SendKeys "{PGUP}", True Application.SendKeys "{PGDN}", True 或者 ActiveWindow.LargeScroll Down:=1 ActiveWindow.LargeScroll Down:=-1 26、當(dāng)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)" 這是相對引用的寫法:根據(jù)推算你的函數(shù)是放在“AD6”單元格 你的函數(shù):=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的數(shù)依次放入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、工作表中的窗體按鈕禁用后,按鈕形狀不變,字體不變,從外表上無法看出其已禁用,如何設(shè)置屬性使其像控件按紐那樣明顯的禁用? With ActiveSheet.Buttons(1) .Enabled = False ActiveSheet.Shapes(.Caption).DrawingObject.Font.ColorIndex = 15 End With 復(fù)原的方法 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 '當(dāng)點擊"$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單元格內(nèi)容替換為a1內(nèi)容 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、當(dāng)激活工作表時,本示例對 A1:A10 區(qū)域進(jìn)行排序。 Private Sub Worksheet_Activate() Range("a1:a10").Sort Key1:=Range("a1"), Order:=xlAscending End Sub 36、BeforePrint 事件 參閱應(yīng)用于示例特性在打印指定工作簿(或者其中的任何內(nèi)容)之前,產(chǎn)生此事件。 Private Sub Workbook_BeforePrint(Cancel As Boolean) Cancel 當(dāng)事件產(chǎn)生時為 False。如果該事件過程將本參數(shù)設(shè)為 True,則當(dāng)該過程運行結(jié)束之后不打印工作簿。 示例 本示例在打印之前對當(dāng)前活動工作簿的所有工作表重新計算。 Private Sub Workbook_BeforePrint(Cancel As Boolean) For Each wk in Worksheets wk.Calculate Next End Sub 37、Open 事件 參閱應(yīng)用于示例特性打開工作簿時,將產(chǎn)生本事件。 Private Sub Workbook_Open() 示例 每次打開工作簿時,本示例都最大化 Microsoft Excel 窗口。 Private Sub Workbook_Open() Application.WindowState = xlMaximized End Sub 38、ActiveSheet 屬性 參閱應(yīng)用于示例特性返回一對象,該對象代表活動工作簿中的,或者指定的窗口或工作簿中的活動工作表(最上面的工作表)。只讀。如果沒有活動的工作表,則返回 Nothing。 說明 如果未給出對象識別符,本屬性返回活動工作簿中的活動工作表。 如果某一工作簿在若干個窗口中出現(xiàn),那么該工作簿的 ActiveSheet 屬性在不同窗口中可能不同。 示例 本示例顯示活動工作表的名稱。 MsgBox "The name of the active sheet is " & ActiveSheet.Name 39、Calculate 方法 參閱應(yīng)用于示例特性計算所有打開的工作簿、工作簿中的一張?zhí)囟ǖ墓ぷ鞅砘蛘吖ぷ鞅碇兄付▍^(qū)域的單元格,如下表所示: 要計算 依照本示例 所有打開的工作簿 Application.Calculate (或只是 Calculate) 指定工作表 指定工作表 指定區(qū)域 Worksheets(1).Rows(2).Calculate expr expr 示例 本示例計算 Sheet1 已用區(qū)域中 A 列、B 列和 C 列的公式。 Worksheets("Sheet1").UsedRange.Columns("A:C").Calculate 程序的核心是算法問題 40、End 屬性 參閱應(yīng)用于示例特性返回一個 Range 對象,該對象代表包含源區(qū)域的區(qū)域尾端的單元格。等同于按鍵 End+ 向上鍵、End+ 向下鍵、End+ 向左鍵或 End+ 向右鍵。Range 對象,只讀。 expr expr Direction XlDirection 類型,必需。所要移動的方向。 XlDirection 可為 XlDirection 常量之一。 xlDown xlToRight xlToLeft xlUp 示例 本示例選定包含單元格 B4 的區(qū)域中 B 列頂端的單元格。 Range("B4").End(xlUp).Select 本示例選定包含單元格 B4 的區(qū)域中第 4 行尾端的單元格。 Range("B4").End(xlToRight).Select 本示例將選定區(qū)域從單元格 B4 延伸至第四行最后一個包含數(shù)據(jù)的單元格。 Worksheets("Sheet1").Activate Range("B4", Range("B4").End(xlToRight)).Select 41、應(yīng)用于 CellFormat 和 Range 對象的 Locked 屬性。 本示例解除對 Sheet1 中 A1:G37 區(qū)域單元格的鎖定,以便當(dāng)該工作表受保護(hù)時也可對這些單元格進(jìn)行修改。 Worksheets("Sheet1").Range("A1:G37").Locked = False Worksheets("Sheet1").Protect 42、Next 屬性 參閱應(yīng)用于示例特性返回一個 Chart、Range 或 Worksheet 對象,該對象代表下一個工作表或單元格。只讀。 說明 如果指定對象為區(qū)域,則本屬性的作用是仿效 Tab,但本屬性只是返回下一單元格,并不選定它。 在處于保護(hù)狀態(tài)的工作表中,本屬性返回下一個未鎖定單元格。在未保護(hù)的工作表中,本屬性總是返回緊靠指定單元格右邊的單元格。 示例 本示例選定 sheet1 中下一個未鎖定單元格。如果 sheet1 未保護(hù),選定的單元格將是緊靠活動單元格右邊的單元格。 Worksheets("Sheet1").Activate ActiveCell.Next.Select 43、想通過target來設(shè)置(A1:A10)區(qū)域內(nèi)有改動,就發(fā)生此事件。不知道如何 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、本示例設(shè)置 Microsoft Excel 每當(dāng)打開包含鏈接的文件時,詢問用戶是否更新鏈接。 Application.AskToUpdateLinks = True |
|
|