VBA-EXCEL工作表代码
Excel VBA批量复制工作表

VBA批量复制工作表工作时,经常需要制作多个工作表,手动操作费时费力,尝试VBA代码帮你快速完成工作。
1、复制单个工作表到指定工作表前面或后面,代码如下:Sheets("Sheet1").Copy After:=Sheets("Sheet2") '复制工作表Sheet1到Sheet2后面Sheets("Sheet1").Copy Before:=Sheets("Sheet2") '复制工作表Sheet1到Sheet2前面2、利用For循环,批量复制单张工作表到指定工作表前面或后面,代码如下:Dim i As IntegerFor i = 0 To 5Sheets("Sheet1").Copy After:=Sheets("Sheet1") '复制工作表Sheet1到Sheet1后面'Sheets("Sheet1").Copy Before:=Sheets("Sheet2") '复制工作表Sheet1到Sheet2前面Next结果是复制6次,效果如下图:3、复制指定工作表,重命名后放在指定位置。
复制工作表“Sheet1”,将复制后的工作表重命名为“Sh eet2”并入在工作表最后,代码如下:Dim Sheets As WorksheetDim MSheetName As StringDim YSheetName As StringYSheetName = "Sheet1" '确定源工作表名称MSheetName = "Sheet2" '确定目标工作表名称Dim i As Integer '定义变量,判断是否有目标工作表名称时用i = 0Dim NewCopySheet As Worksheet'Set NewCopySheet = ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) For Each Sheets In WorksheetsIf = MSheetName Then '先判断是否有目标工作表名称,若有提示重新修改目标工作表名字。
VBA操作excel

tmp = Trim(ThisWorkbook.Sheets(2).Cells(1, 1))
MsgBox (tmp)
End Sub
String(number,character) 返回重复的字符或字符串
End Sub
Sub tt1()
Dim a As New DataObject
a.SetText "ABC"
a.PutInClipboard
End Sub
Sub tt2()
Dim a As New DataObject
a.GetFromClipboard
MsgBox a.GetText
' Exit For
' End If
' Next i
' time_end = Time
' MsgBox "i = " & i & " 时间是 " & Minute(time_end - time_start) & Second(time_end - time_start)
Private Sub data_process_Click()
'控制EXCEL代码
Dim xlApp As Object 'Excel.Application
Dim xlBook As Object 'Excel.Workbook
Dim xlSheet As Object 'Excel.Worksheet
excelvba 工作表的表示方法

excelvba 工作表的表示方法Excel VBA工作表的表示方法在Excel VBA中,我们可以使用几种不同的方法来表示工作表。
这些方法可以帮助我们在VBA代码中对工作表进行引用、操作和处理。
1. 使用工作表名称最常见的表示方法是使用工作表的名称。
每个工作表都有一个唯一的名称,可以在Excel的标签栏上看到。
我们可以在VBA代码中使用这个名称来引用工作表。
例如,假设我们有一个名为"Sheet1"的工作表,并且我们想要将其隐藏起来。
我们可以使用以下代码实现:```vbaWorksheets("Sheet1").Visible = False```2. 使用工作表索引号除了使用工作表名称,我们还可以使用工作表的索引号来表示工作表。
工作表的索引号是根据它们在工作簿中的顺序分配的。
第一个工作表的索引号为1,第二个工作表的索引号为2,依此类推。
例如,如果我们想要引用第三个工作表并更改其名称为"Data",我们可以使用以下代码:```vbaWorksheets(3).Name = "Data"```3. 使用工作表对象变量另一种表示方法是使用工作表对象变量。
通过将工作表赋值给一个变量,我们可以在代码中引用该变量来处理工作表。
下面是一个示例,假设我们想要循环遍历工作簿中的所有工作表并显示它们的名称:```vbaDim ws As WorksheetFor Each ws In ThisWorkbook.WorksheetsMsgBox Next ws```在上面的代码中,我们定义了一个工作表对象变量`ws`,然后使用`For Each`循环遍历`ThisWorkbook.Worksheets`集合,该集合包含了所有工作簿中的工作表。
在循环过程中,我们通过``来引用工作表的名称,并使用`MsgBox`函数显示它们。
通过使用上述这些方法的组合,我们可以在Excel VBA中方便地表示和操作工作表,无论是根据名称、索引还是对象变量。
Excel VBA常用代码总结1

Excel VBA常用代码总结1•改变背景色Range(”A1”).Interior。
ColorIndex = xlNoneColorIndex一览•改变文字颜色Range("A1").Font.ColorIndex = 1•获取单元格Cells(1,2)Range(”H7")•获取范围Range(Cells(2,3), Cells(4, 5))Range(”a1:c3”)’用快捷记号引用单元格Worksheets(”Sheet1”)。
[A1:B5]•选中某sheetSet NewSheet = Sheets("sheet1")NewSheet。
Select•选中或激活某单元格'“Range”对象的的Select方法可以选择一个或多个单元格,而Activate方法可以指定某一个单元格为活动单元格.'下面的代码首先选择A1:E10区域,同时激活D4单元格:Range("a1:e10”).SelectRange(”d4:e5”).Activate’而对于下面的代码:Range("a1:e10")。
SelectRange("f11:g15")。
Activate’由于区域A1:E10和F11:G15没有公共区域,将最终选择F11:G15,并激活F11单元格。
•获得文档的路径和文件名ActiveWorkbook.Path '路徑 '名稱ActiveWorkbook。
FullName '路徑+名稱'或将ActiveWorkbook换成thisworkbook•隐藏文档Application.Visible = False•禁止屏幕更新Application。
ScreenUpdating = False•禁止显示提示和警告消息Application。
DisplayAlerts = False•文件夹做成strPath = ”C:\temp\"MkDir strPath•状态栏文字表示Application.StatusBar = ”计算中"•双击单元格内容变换Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)If (Target.Cells.Row 〉= 5And Target。
Excel-vba宏代码-大全

宏文件集▲打开全部隐藏工作表返回Sub 打开全部隐藏工作表()Dim i As IntegerFor i = 1 To Sheets.CountSheets(i).Visible = TrueNext iEnd Sub▲循环宏返回Sub 循环()AAA = Range("C2")Dim i As LongDim times As Longtimes = AAA'times代表循环次数,执行前把times赋值即可(不可小于1,不可大于2147483647)For i = 1 To timesCall 过滤一行If Range("完成标志") = "完成" Then Exit For '如果名为'完成标志'的命名单元的值等于'完成',则退出循环,如果一开始就等于'完成',则只执行一次循环就退出'If Sheets("传送参数").Range("A" & i).Text = "完成" Then Exit For '如果某列出现"完成"内容则退出循环Next iEnd Sub▲录制宏时调用“停止录制”工具栏返回Sub 录制宏时调用停止录制工具栏()mandBars("Stop Recording").Visible = TrueEnd Sub▲高级筛选5列不重复数据至指定表返回Sub 高级筛选5列不重复数据至Sheet2()Sheets("Sheet2").Range("A1:E65536") = "" '清除Sheet2的A:D列Range("A1:E65536").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Sheet2.Range( _"A1"), Unique:=TrueSheet2.Columns("A:E").Sort Key1:=Sheet2.Range("A2"), Order1:=xlAscending,Header:=xlGuess, _OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _:=xlPinYinEnd Sub▲双击单元执行宏(工作表代码)返回Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)If Range("$A$1") = "关闭" Then Exit SubSelect Case Target.AddressCase "$A$4"Call 宏1Cancel = TrueCase "$B$4"Call 宏2Cancel = TrueCase "$C$4"Call 宏3Cancel = TrueCase "$E$4"Call 宏4Cancel = TrueEnd SelectEnd Sub▲双击指定区域单元执行宏(工作表代码)返回Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)If Range("$A$1") = "关闭" Then Exit SubIf Not Application.Intersect(Target, Range("A4:A9", "C4:C9")) Is Nothing Then Call 打开隐藏表End Sub▲进入单元执行宏(工作表代码)返回Private Sub Worksheet_SelectionChange(ByVal Target As Range)'以单元格进入代替按钮对象调用宏If Range("$A$1") = "关闭" Then Exit SubSelect Case Target.AddressCase "$A$5" '单元地址(Target.Address),或命名单元名字()Call 宏1Case "$B$5"Call 宏2Case "$C$5"Call 宏3End SelectEnd Sub▲进入指定区域单元执行宏(工作表代码)返回Private Sub Worksheet_SelectionChange(ByVal Target As Range)If Range("$A$1") = "关闭" Then Exit SubIf Not Application.Intersect(Target, Range("A4:A9","C4:C9")) Is Nothing Then Call打开隐藏表End Sub▲在多个宏中依次循环执行一个(控件按钮代码)返回Private Sub CommandButton1_Click()Static RunMacro As IntegerSelect Case RunMacroCase 0宏1RunMacro = 1Case 1宏2RunMacro = 2Case 2宏3RunMacro = 0End SelectEnd Sub▲在两个宏中依次循环执行一个并相应修改按钮名称(控件按钮代码)返回Private Sub CommandButton1_Click()With CommandButton1If .Caption = "保护工作表" ThenCall 保护工作表.Caption = "取消工作表保护"Exit SubEnd IfIf .Caption = "取消工作表保护" ThenCall 取消工作表保护.Caption = "保护工作表"Exit SubEnd IfEnd WithEnd Sub▲在三个宏中依次循环执行一个并相应修改按钮名称(控件按钮代码)返回Option ExplicitPrivate Sub CommandButton1_Click()With CommandButton1If .Caption = "宏1" ThenCall 宏1.Caption = "宏2"Exit SubEnd IfIf .Caption = "宏2" ThenCall 宏2.Caption = "宏3"Exit SubEnd IfIf .Caption = "宏3" ThenCall 宏3.Caption = "宏1"Exit SubEnd IfEnd WithEnd Sub▲根据A1单元文本隐藏/显示按钮(控件按钮代码)返回Private Sub Worksheet_SelectionChange(ByVal Target As Range)If Range("A1") > 2 ThenCommandButton1.Visible = 1ElseCommandButton1.Visible = 0End IfEnd SubPrivate Sub CommandButton1_Click()重排窗口End Sub▲当前单元返回按钮名称(控件按钮代码)返回Private Sub CommandButton1_Click()ActiveCell = CommandButton1.CaptionEnd Sub▲当前单元内容返回到按钮名称(控件按钮代码)返回Private Sub CommandButton1_Click()CommandButton1.Caption = ActiveCellEnd Sub▲奇偶页分别打印返回Sub 奇偶页分别打印()Dim i%, Ps%Ps = ExecuteExcel4Macro("GET.DOCUMENT(50)") '总页数MsgBox "现在打印奇数页,按确定开始."For i = 1 To Ps Step 2ActiveSheet.PrintOut from:=i, To:=iNext iMsgBox "现在打印偶数页,按确定开始."For i = 2 To Ps Step 2ActiveSheet.PrintOut from:=i, To:=iNext iEnd Sub▲自动打印多工作表第一页返回Sub 自动打印多工作表第一页()Dim sh As IntegerDim xDim yDim syDim syzx = InputBox("请输入起始工作表名字:")sy = InputBox("请输入结束工作表名字:")y = Sheets(x).Indexsyz = Sheets(sy).IndexFor sh = y To syzSheets(sh).SelectSheets(sh).PrintOut from:=1, To:=1Next shEnd Sub▲查找A列文本循环插入分页符返回Sub 循环插入分页符()' Selection = Workbooks("临时表").Sheets("表2").Range("A1") 调用指定地址内容Dim i As LongDim times As Longtimes = Application.WorksheetFunction.CountIf(Sheet1.Range("a:a"), "分页")'times代表循环次数,执行前把times赋值即可(不可小于1,不可大于2147483647)For i = 1 To timesCall 插入分页符Next iEnd SubSub 插入分页符()Cells.Find(What:="分页", After:=ActiveCell, LookIn:=xlValues, LookAt:= _xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _.ActivateActiveWindow.SelectedSheets.HPageBreaks.Add Before:=ActiveCellEnd SubSub 取消原分页()Cells.SelectActiveSheet.ResetAllPageBreaksEnd Sub▲将A列最后数据行以上的所有B列图片大小调整为所在单元大小返回Sub 将A列最后数据行以上的所有B列图片大小调整为所在单元大小()Dim Pic As Picture, i&i = [A65536].End(xlUp).RowFor Each Pic In Sheet1.PicturesIf Not Application.Intersect(Pic.TopLeftCell, Range("B1:B" & i)) Is Nothing ThenPic.Top = Pic.TopLeftCell.TopPic.Left = Pic.TopLeftCell.LeftPic.Height = Pic.TopLeftCell.HeightPic.Width = Pic.TopLeftCell.WidthEnd IfNextEnd Sub▲返回光标所在行数返回Sub 返回光标所在行数()x = ActiveCell.RowRange("A1") = xEnd Sub▲在A1返回当前选中单元格数量返回Sub 在A1返回当前选中单元格数量()[A1] = Selection.CountEnd Sub▲返回当前工作簿中工作表数量返回Sub 返回当前工作簿中工作表数量()t = Application.Sheets.CountMsgBox tEnd Sub▲返回光标选择区域的行数和列数返回Sub 返回光标选择区域的行数和列数()x = Selection.Rows.County = Selection.Columns.CountRange("A1") = xRange("A2") = yEnd Sub▲工作表中包含数据的最大行数返回Sub 包含数据的最大行数()n = Cells.Find("*", , , , 1, 2).RowMsgBox nEnd Sub▲返回A列数据的最大行数返回Sub 返回A列数据的最大行数()n = Range("a65536").End(xlUp).RowRange("B1") = nEnd Sub▲将所选区域文本插入新建文本框返回Sub 将所选区域文本插入新建文本框()For Each rag In Selectionn = n & rag.Value & Chr(10)NextActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, ActiveCell.Left +ActiveCell.Width, ActiveCell.Top + ActiveCell.Height, 250#, 100).SelectSelection.Characters.Text = "问题:" & nWith Selection.Characters(Start:=1, Length:=3).Font.Name = "黑体".FontStyle = "常规".Size = 12End WithEnd Sub▲批量插入地址批注返回Sub 批量插入地址批注()On Error Resume NextDim r As RangeIf Selection.Cells.Count > 0 ThenFor Each r In Selectionment.Deleter.AddCommentment.Visible = Falsement.Text Text:="本单元格:" & r.Address & " of " & Selection.AddressNextEnd IfEnd Sub▲批量插入统一批注返回Sub 批量插入统一批注()Dim r As Range, msg As Stringmsg = InputBox("请输入欲批量插入的批注", "提示", "随便输点什么吧")If Selection.Cells.Count > 0 ThenFor Each r In Selectionr.AddCommentment.Visible = Falsement.Text Text:=msgNextEnd IfEnd Sub▲以A1单元内容批量插入批注返回Sub 以A1单元内容批量插入批注()Dim r As RangeIf Selection.Cells.Count > 0 ThenFor Each r In Selectionr.AddCommentment.Visible = Falsement.Text Text:=[a1].TextNextEnd IfEnd Sub▲不连续区域插入当前文件名和表名及地址返回Sub 批量插入当前文件名和表名及地址()For Each mycell In Selectionmycell.FormulaR1C1 = "[" + + "]" + +"!" + mycell.AddressNextEnd Sub▲不连续区域录入当前单元地址返回Sub 区域录入当前单元地址()For Each mycell In Selectionmycell.FormulaR1C1 = mycell.AddressNextEnd Sub▲连续区域录入当前单元地址返回Sub 连续区域录入当前单元地址()Selection = "=ADDRESS(ROW(),COLUMN(),4,1)"Selection.CopySelection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _:=False, Transpose:=FalseEnd Sub▲返回当前单元地址返回Sub 返回当前单元地址()d = ActiveCell.Address[A1] = dEnd Sub▲不连续区域录入当前日期返回Sub 区域录入当前日期()Selection.FormulaR1C1 = Format(Now(), "yyyy-m-d")End Sub▲不连续区域录入当前数字日期返回Sub 区域录入当前数字日期()Selection.FormulaR1C1 = Format(Now(), "yyyymmdd")End Sub▲不连续区域录入当前日期和时间返回Sub 区域录入当前日期和时间()Selection.FormulaR1C1 = Format(Now(), "yyyy-m-d h:mm:ss")End Sub▲不连续区域录入对勾返回Sub 批量录入对勾()Selection.FormulaR1C1 = "√"End Sub▲不连续区域录入当前文件名返回Sub 批量录入当前文件名()Selection.FormulaR1C1 = End Sub▲不连续区域添加文本返回Sub 批量添加文本()Dim s As RangeFor Each s In Selections = s & "文本内容"NextEnd Sub▲不连续区域插入文本返回Sub 批量插入文本()Dim s As RangeFor Each s In Selections = "文本内容" & sNextEnd Sub▲从指定位置向下同时录入多单元指定内容返回Sub 从指定位置向下同时录入多单元指定内容()Dim arrarr = Array("1", "2", "13", "25", "46", "12", "0", "20")[B2].Resize(8, 1) = Application.WorksheetFunction.Transpose(arr)End Sub▲按aa工作表A列的内容排列工作表标签顺序返回Sub 按aa工作表A列的内容排列工作表标签顺序()Dim I%, str1$I = 1Sheets("aa").SelectDo While Cells(I, 1).Value <> ""str1 = Trim(Cells(I, 1).Value)Sheets(str1).SelectSheets(str1).Move after:=Sheets(I)I = I + 1Sheets("aa").SelectLoopEnd Sub▲以A1单元文本作表名插入工作表返回Sub 以A1单元文本作表名插入工作表()Dim nm As Stringnm = [a1]Sheets.Add = nmEnd Sub▲删除全部未选定工作表返回Sub 删除全部未选定工作表()Dim sht As Worksheet, n As Integer, iFlag As BooleanDim ShtName() As Stringn = ActiveWindow.SelectedSheets.CountReDim ShtName(1 To n)n = 1For Each sht In ActiveWindow.SelectedSheetsShtName(n) = n = n + 1NextApplication.DisplayAlerts = FalseFor Each sht In SheetsiFlag = FalseFor i = 1 To n - 1If ShtName(i) = TheniFlag = TrueExit ForEnd IfNextIf Not iFlag Then sht.DeleteNextApplication.DisplayAlerts = TrueEnd Sub▲工作表标签排序返回Sub 工作表标签排序()Dim i As Long, j As Long, nums As Long, msg As Longmsg = MsgBox("工作表按升序排列请选 '是[Y]'. " & vbCrLf & vbCrLf & "工作表按降序排列请选 '否[N]'", vbYesNoCancel, "工作表排序")If msg = vbCancel Then Exit Subnums = Sheets.CountIf msg = vbYes Then 'Sort ascendingFor i = 1 To numsFor j = i To numsIf UCase(Sheets(j).Name) < UCase(Sheets(i).Name) ThenSheets(j).Move Before:=Sheets(i)End IfNext jNext iElse 'Sort descendingFor i = 1 To numsFor j = i To numsIf UCase(Sheets(j).Name) > UCase(Sheets(i).Name) ThenSheets(j).Move Before:=Sheets(i)End IfNext jNext iEnd IfEnd Sub▲定义指定工作表标签颜色返回Sub 定义指定工作表标签颜色()Sheets("Sheet1").Tab.ColorIndex = 46End Sub▲在目录表建立本工作簿中各表链接目录返回Sub 在目录表建立本工作簿中各表链接目录()Dim s%, Rng As RangeOn Error Resume NextSheets("目录").ActivateIf Err = 0 ThenSheets("目录").UsedRange.DeleteElseSheets.Add = "目录"End IfFor i = 1 To Sheets.CountIf Sheets(i).Name <> "目录" Thens = s + 1Set Rng = Sheets("目录").Cells(((s - 1) Mod 20) + 1, (s - 1) \ 20 + 1 + 1)Rng = Format(s, " 0") & ". " & Sheets(i).NameActiveSheet.Hyperlinks.Add Rng, "#" & Sheets(i).Name & "!A1",ScreenTip:=Sheets(i).NameEnd IfNextSheets("目录").Range("b:iv").EntireColumn.ColumnWidth = 20End Sub▲建立工作表文本目录返回Sub 建立工作表文本目录()Sheets.Add before:=Sheets(1)Sheets(1).Name = "目录"For i = 2 To Sheets.CountCells(i - 1, 1) = Sheets(i).Name'Sheets(1).Hyperlinks.Add Cells(i - 1, 1), "#" & Sheets(i).Name & "!A1" '添加超链接NextEnd Sub▲查另一文件的全部表名返回Sub 查另一文件的全部表名()On Error Resume NextDim i%Dim sh As WorksheetApplication.ScreenUpdating = FalseWorkbooks.Open Filename:=ThisWorkbook.Path & "\2.xls"Windows("1.xls").Activate '当前文件名称Sheets("Sheet1").Select '当前表名称i = 1 '将表名称返回到第1行For Each sh In Workbooks("2.xls").WorksheetsCells(i, 1) = '将表名称返回到第1列i = i + 1 '返回每个表名称向下移动1行Next shWindows("2.xls").Close '关闭对象文件Application.ScreenUpdating = TrueEnd Sub▲当前单元录入计算机名返回Sub 当前单元录入计算机名()Selection = Environ("COMPUTERNAME")'Selection = Workbooks("临时表").Sheets("表2").Range("A1") 调用指定地址内容End Sub▲当前单元录入计算机用户名返回 Sub 当前单元录入计算机用户名()Selection = Environ("Username")'Selection = Workbooks("临时表").Sheets("表2").Range("A1") 调用指定地址内容End Sub▲解除全部工作表保护返回Sub 解除全部工作表保护()Dim n As IntegerFor n = 1 To Sheets.CountSheets(n).UnprotectNext nEnd Sub▲为指定工作表加指定密码保护表返回Sub 为指定工作表加指定密码保护表()Sheet10.Protect Password:="123"End Sub▲在有密码的工作表执行代码返回Sub 在有密码的工作表执行代码()Sheets("1").Unprotect Password:=123 '假定表名为“1”,密码为“123” 打开工作表Range("C:C").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True '隐藏C列空值行Sheets("1").Protect Password:=123 '重新用密码保护工作表End Sub▲执行前需要验证密码的宏(控件按钮代码)返回Private Sub CommandButton1_Click()If InputBox("请输入密码:") <> "123" Then '密码是123MsgBox "密码错误,按确定退出!", 64, "提示"Exit SubEnd IfCells(1, 1) = 10End SubSub 执行前需要验证密码的宏()If InputBox("请输入您的使用权限:", "系统提示") = 123 Then重排窗口 '要执行的宏代码或宏名称ElseMsgBox "对不起,您没有使用该宏的权限,按确定键后退出!"End IfEnd Sub▲拷贝A1公式和格式到A2返回Sub 拷贝A1公式到A2()Workbooks("临时表").Sheets("表1").Range("A1").CopyWorkbooks("临时表").Sheets("表2").Range("A2").PasteSpecialEnd Sub▲复制单元数值返回Sub 复制数值()s = Workbooks("book1").Sheets("Sheet1").Range("A1:A2")Workbooks("book2").Sheets("Sheet1").Range("A1:A2") = sEnd Sub▲插入数值条件格式返回Sub 插入数值条件格式()Selection.FormatConditions.DeleteSelection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _Formula1:="70"Selection.FormatConditions(1).Interior.ColorIndex = 45Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, _Formula1:="55"Selection.FormatConditions(2).Interior.ColorIndex = 39Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _Formula1:="60"Selection.FormatConditions(3).Interior.ColorIndex = 34End Sub▲插入透明批注返回Sub 插入透明批注()Selection.AddCommentment.Visible = FalseDim XS As WorksheetFor i = 1 To ments.Countments(i).Text "透明批注"ments(i).Shape.Fill.Visible = msoFalseNextEnd Sub▲添加文本返回Sub 添加文本()Selection = Selection + "×" '不可在数字后添加文本'Selection = Workbooks("临时表").Sheets("表2").Range("A1") 调用指定地址内容End Sub▲光标定位到指定工作表A列最后数据行下一单元返回Sub 光标定位到指定工作表A列最后数据行下一单元()a = Sheets("数据库").[a65536].End(xlUp).RowSheets("数据库").SelectRange("A" & a + 1).SelectEnd Sub▲定位选定单元格式相同的全部单元格返回Sub 定位选定单元格式相同的全部单元格()Dim FirstCell As Range, FoundCell As RangeDim AllCells As RangeWith Application.FindFormat.Clear.NumberFormatLocal = Selection.NumberFormatLocal.HorizontalAlignment = Selection.HorizontalAlignment.VerticalAlignment = Selection.VerticalAlignment.WrapText = Selection.WrapText.Orientation = Selection.Orientation.AddIndent = Selection.AddIndent.IndentLevel = Selection.IndentLevel.ShrinkToFit = Selection.ShrinkToFit.MergeCells = Selection.MergeCells = .Font.FontStyle = Selection.Font.FontStyle.Font.Size = Selection.Font.Size.Font.Strikethrough = Selection.Font.Strikethrough.Font.Subscript = Selection.Font.Subscript.Font.Underline = Selection.Font.Underline.Font.ColorIndex = Selection.Font.ColorIndex.Interior.ColorIndex = Selection.Interior.ColorIndex.Interior.Pattern = Selection.Interior.Pattern.Locked = Selection.Locked.FormulaHidden = Selection.FormulaHiddenEnd WithSet FirstCell = edRange.Find(what:="", searchformat:=True)If FirstCell Is Nothing ThenExit SubEnd IfSet AllCells = FirstCellSet FoundCell = FirstCellDoSet FoundCell = edRange.Find(After:=FoundCell, what:="",searchformat:=True)If FoundCell Is Nothing Then Exit DoSet AllCells = Union(FoundCell, AllCells)If FoundCell.Address = FirstCell.Address Then Exit DoLoopAllCells.SelectEnd Sub▲按当前单元文本定位返回Sub 按当前单元文本定位()ABC = SelectionDim aa As RangeFor Each a In edRangeIf a Like ABC ThenIf aa Is Nothing ThenSet aa = a.CellsElseSet aa = Union(aa, a.Cells)End IfEnd IfNextaa.SelectEnd Sub▲按固定文本定位返回Sub 文本定位()Dim aa As RangeFor Each a In edRangeIf a Like "*合计*" ThenIf aa Is Nothing ThenSet aa = a.CellsElseSet aa = Union(aa, a.Cells)End IfEnd IfNextaa.SelectEnd Sub▲删除包含固定文本单元的行或列返回Sub 删除包含固定文本单元的行或列()DoCells.Find(what:="哈哈").ActivateSelection.EntireRow.Delete '删除行' Selection.EntireColumn.Delete '删除列Loop Until Cells.Find(what:="哈哈") Is NothingEnd Sub▲定位数据及区域以上的空值返回Sub 定位数据及区域以上的空值()Dim aa As RangeFor Each a In edRangeIf a Like 〈0 ThenIf aa Is Nothing ThenSet aa = a.CellsElseSet aa = Union(aa, a.Cells)End IfEnd IfNextaa.SelectEnd Sub▲右侧单元自动加5(工作表代码)返回Private Sub Worksheet_Change(ByVal Target As Range)Application.EnableEvents = FalseTarget.Offset(0, 1) = Target + 5Application.EnableEvents = TrueEnd Sub▲当前单元加2返回Sub 当前单元加2()Selection = Selection + 2'Selection = Workbooks("临时表").Sheets("表2").Range("A1") 调用指定地址内容End Sub▲A列等于A列减B列返回Sub A列等于A列减B列()For i = 1 To 23Cells(i, 1) = Cells(i, 1) - Cells(i, 2)NextEnd Sub▲用于光标选定多区域跳转指定单元(工作表代码)返回Private Sub Worksheet_SelectionChange(ByVal T As Range)a = Array([b6:b7], [e6], [h6])For i = 0 To 2If Not Application.Intersect(T, a(i)) Is Nothing Then[a1].Select: Exit ForEnd IfNextEnd Sub▲将A1单元录入的数据累加到B1单元(工作表代码)返回Private Sub Worksheet_Change(ByVal Target As Range)Dim t As LongIf Target.Address = "$A$1" Thent = Sheet1.Range("$B$1").ValueSheet1.Range("$B$1").Value = t + Target.ValueEnd IfEnd Sub▲在指定颜色区域选择单元时添加/取消"√"(工作表代码)返回Private Sub Worksheet_SelectionChange(ByVal Target As Range)Dim myrg As RangeFor Each myrg In TargetIf myrg.Interior.ColorIndex = 37 Then myrg = IIf(myrg <> "√", "√", "")NextEnd Sub▲在指定区域选择单元时添加/取消"√"(工作表代码)返回Private Sub Worksheet_SelectionChange(ByVal Target As Range)Dim Rng As RangeIf Target.Count <= 15 ThenIf Not Application.Intersect(Target, Range("D6:D20")) Is Nothing ThenFor Each Rng In SelectionWith RngIf .Value = "" Then.Value = "√"Else.Value = ""End IfEnd WithNextEnd IfEnd IfEnd Sub▲双击指定单元,循环录入文本(工作表代码)返回Private Sub Worksheet_BeforeDoubleClick(ByVal T As Range, Cancel As Boolean)If T.Address <> "$A$1" Then Exit SubCancel = TrueT = IIf(T = "好", "中", IIf(T = "中", "差", "好"))End Sub双击指定单元,循环录入文本(工作表代码)Dim nums As BytePrivate Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Address = "$A$1" Thennums = nums Mod 3 + 1Target = Mid("上中下", nums, 1)Target.Offset(1, 0).SelectEnd IfEnd Sub▲单元区域引用(工作表代码)返回Private Sub Worksheet_Activate()Sheet1.Range("A1:B3").Value = Sheet2.Range("A1:B3").ValueEnd Sub▲在指定区域选择单元时数值加1(工作表代码)返回Private Sub Worksheet_SelectionChange(ByVal Target As Range)If Not Application.Intersect([a1:e10], Target) Is Nothing ThenTarget = Val(Target) + 1End IfEnd Sub▲混合文本的编号返回Sub 混合文本的编号()Worksheets(1).Range("B2").Value = "北京" & (--(Mid(Worksheets(1).Range("B2"), 3,100)) + 1)End Sub▲指定区域单元双击数据累加(工作表代码)返回Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)If Not Application.Intersect([A1:Y100], Target) Is Nothing Thenoldvalue = Val(Target.Value)inputvalue = InputBox("请输入数量,按ENTER键确认!", "数值累加器")Target.Value = oldvalue + inputvalueEnd IfEnd Sub▲选择单元区域触发事件(工作表代码)返回Private Sub Worksheet_SelectionChange(ByVal Target As Range)If Target.Address = "$A$1:$B$2" ThenMsgBox "你选择了$A$1:$B$2单元"End IfEnd Sub▲当修改指定单元内容时自动执行宏(工作表代码)返回Private Sub Worksheet_Change(ByVal Target As Range)If Not Application.Intersect(Target, [B3:B4]) Is Nothing Then重排窗口End IfEnd Sub▲被指定单元内容限制执行宏返回Sub 被指定单元限制执行宏()If Range("$A$1") = "关闭" Then Exit Sub窗口End Sub▲双击单元隐藏该行(工作表代码)返回Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)Rows(Target.Row).Hidden = TrueEnd Sub▲高亮显示行(工作表代码)返回Private Sub Worksheet_SelectionChange(ByVal Target As Range)Cells.Interior.ColorIndex = 2Rows("1:2").Interior.ColorIndex = 40 '保持1至2行的颜色推荐39,22,40,Rows(Target.Row).Interior.ColorIndex = 35 '高亮推荐颜色35,20,24,34,37,40,15End Sub▲高亮显示行和列(工作表代码)返回Private Sub Worksheet_SelectionChange(ByVal Target As Range)Cells.Interior.ColorIndex = xlNoneRows(Target.Row).Interior.ColorIndex = 34Columns(Target.Column).Interior.ColorIndex = 34End Sub▲为指定工作表设置滚动范围(工作簿代码)返回Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target AsRange)Sheet1.ScrollArea = "A1:M30"End Sub▲在指定单元记录打印和预览次数(工作簿代码)返回Private Sub Workbook_BeforePrint(Cancel As Boolean)Range("A1") = 1 + Range("A1")End Sub▲自动数字金额转大写(工作表代码)返回Private Sub Worksheet_Change(ByVal M As Range)On Error Resume Nexty = Int(Round(100 * Abs(M)) / 100)j = Round(100 * Abs(M) + 0.00001) - y * 100f = (j / 10 - Int(j / 10)) * 10A = IIf(y < 1, "", Application.Text(y, "[DBNum2]") & "元")b = IIf(j > 9.5, Application.Text(Int(j / 10), "[DBNum2]") & "角", IIf(y < 1,"", IIf(f > 1, "零", "")))c = IIf(f < 1, "整", Application.Text(Round(f, 0), "[DBNum2]") & "分")M = IIf(Abs(M) < 0.005, "", IIf(M < 0, "负" & A & b & c, A & b & c))End Sub▲将全部工作表的A1单元作为单击按钮(工作簿代码)返回Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target AsRange)If Target.Address = "$A$1" ThenCall 宏名End IfEnd Sub▲闹钟——到指定时间执行宏(工作簿代码)返回Private Sub Workbook_Open()Application.OnTime ("11:45:00"), "提示1" '宏名字Application.OnTime ("12:00:00"), "提示2" '宏名字End Sub▲改变Excel界面标题的宏(工作簿代码)返回Private Sub Workbook_Open()Application.Caption = "春节快乐"End Sub▲在指定工作表的指定单元返回光标当前多选区地址(工作簿代码)返回Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target AsRange)Worksheets("表2").Range("A1") = Target.Address(0, 0)End Sub▲B列录入数据时在A列返回记录时间(工作表代码)返回Public Sub Worksheet_Change(ByVal Target As Range)If Target.Column = 2 ThenTarget.Offset(, -1) = NowEnd IfEnd Sub▲当指定区域修改时在其右侧的2个单元返回当前日期和时间(工作表代码)返回Public Sub Worksheet_Change(ByVal Target As Range)If Not Application.Intersect(Target, [A1:A1000]) Is Nothing ThenIf Target.Column = 1 ThenTarget.Offset(, 1) = DateTarget.Offset(, 2) = TimeEnd IfEnd IfEnd SubPublic Sub Worksheet_Change(ByVal Target As Range)If Not Application.Intersect(Target, [A1:A1000]) Is Nothing ThenIf Target.Column = 1 ThenTarget.Offset(, 1) = Format(Now(), "yyyy-mm-dd")Target.Offset(, 2) = Format(Now(), "h:mm:ss")End IfEnd IfEnd Sub▲指定单元显示光标位置内容(工作表代码)返回Private Sub Worksheet_SelectionChange(ByVal T As Range)Sheets(1).Range("A1") = SelectionEnd Sub▲每编辑一个单元保存文件返回Private Sub Worksheet_Change(ByVal Target As Range)ThisWorkbook.SaveEnd Sub▲指定允许编辑区域返回Sub 指定允许编辑区域()ActiveSheet.ScrollArea = "B8:G15"End Sub▲解除允许编辑区域限制返回Sub 解除允许编辑区域限制()ActiveSheet.ScrollArea = ""End Sub▲删除指定行返回Sub 删除指定行()Workbooks("临时表").Sheets("表2").Range("5:5").DeleteEnd Sub▲删除A列为指定内容的行返回Sub 删除A列为指定内容的行()Dim a, b As Integera = Sheet1.[a65536].End(xlUp).RowFor b = a To 2 Step -1If Cells(b, 1).Value = "删除" ThenRows(b).DeleteEnd IfNextEnd Sub▲删除A列非数字单元行返回Sub 删除A列非数字单元行()i = [a65536].End(xlUp).RowRange("A1:A" & i).SpecialCells(xlCellTypeConstants, 2).EntireRow.DeleteEnd Sub▲有条件删除当前行返回Sub 有条件删除当前行()If [A1] = 2 Or [B1] = "删除" ThenSelection.Delete Shift:=xlUpEnd IfEnd Sub▲选择下一行返回Sub 选择下一行()ActiveCell.Offset(1, 0).Rows("1:1").EntireRow.SelectEnd Sub▲选择第5行开始所有数据行返回Sub 选择第5行开始所有数据行A()Dim i%i = Cells.Find("*", SearchOrder:=xlByRows, LookIn:=xlValues,SearchDirection:=xlPrevious).EntireRow.RowRows("5:" & i).SelectEnd SubSub 选择第5行开始所有数据行B()Rows("5:" & Cells.Find("*", , , , 1, 2).Row).SelectEnd Sub▲选择光标或选区所在行返回Sub 选择光标或选区所在行()Selection.EntireRow.Select▲选择光标或选区所在列返回Sub 选择光标或选区所在列()Selection.EntireColumn.SelectEnd Sub▲光标定位到名称指定位置返回Sub 定位()Application.Goto Range(Evaluate("名称"))End Sub▲选择名称定义的数据区返回Sub 选择名称定义的数据区()[数据区].Select '插入名称要使用INDIRECT函数'Range("数据区").Select 或者'Sheet1.Range("数据区").Select 或者End Sub▲选择到指定列的最后行返回Sub 选择到指定列的最后行()Range("C4:G" & [G65536].End(xlUp).Row).SelectEnd Sub▲将Sheet1的A列的非空值写到Sheet2的A列返回Sub 将Sheet1的A列的非空值写到Sheet2的A列()Sheet1.Columns("A:A").SpecialCells(2, 23).SpecialCells(12).Copy Sheet2.[A1]End Sub▲将名称1的数据写到名称2返回Sub Macro2()Range("位置2") = Range("位置1").Value▲单元反选返回Sub 单元反选()Application.DisplayAlerts = FalseApplication.ScreenUpdating = FalseDim raddress As String, taddress As Stringraddress = Selection.Addresstaddress = edRange.AddressWith Sheets.Add.Range(taddress) = 0.Range(raddress) = "=0"raddress = .Range(taddress).SpecialCells(xlCellTypeConstants, 1).Address.DeleteEnd WithActiveSheet.Range(raddress).SelectApplication.ScreenUpdating = TrueEnd Sub▲调整选中对象中的文字返回Sub 调整选中对象中的文字()'文字居中、自动调整大小With Selection.HorizontalAlignment = xlCenter.VerticalAlignment = xlCenter.ReadingOrder = xlContext.Orientation = xlHorizontal.AutoSize = True.AddIndent = FalseEnd WithEnd Sub▲去除指定范围内的对象返回Sub 去除指定范围内的对象()。
VB对Excel文件的操作代码

VB对Excel文件的操作代码Dim A(65536) As StringDim i As IntegerDim xlsApp As ObjectDim xlsWorkbook As ObjectSet xlsApp = CreateObject("Excel.Application")Set xlsWorkbook = xlsApp.Workbooks.Open("D:\文件名.xls") xlsApp.Visible = FalsexlsApp.Range("A1").Selecti = -1Doi = i + 1A(i) = xlsApp.ActiveCell.Offset(0, i).ValueIf A(i) <> "" ThenPrint i + 1;Print " ";Print A(i)End IfLoop Until A(i) = ""If Dir("D:\文件名2.xls") <> "" Then Kill ("D:\文件名2.xls")xlsWorkbook.saveas ("D:\文件名2.xls")xlsApp.Workbooks.ClosexlsApp.QuitSet xlsSheet = NothingSet xlsWorkbook = NothingSet xlsApp = Nothing'以下为Excel操作的其他一些功能'Set xlsSheet = xlsWorkbook.Worksheets("表名") '设置活动工作表'xlsSheet.Cells(行,列) = "值" '赋值'xlsApp.WorkBooks.Add '添加工作薄'xlsApp.WorkSheets.Add '添加工作表'xlsWorkbook.saveas ("文件名") '保存文件'xlsApp.ActiveSheet.Columns(1).ColumnWidth = 20 '设置列宽'xlsApp.ActiveSheet.Rows(1).RowHeight = 30 '设置行高'xlsApp.ActiveSheet.rows(8).pagebreak = 1 '插入分页符(值为0时删除分页符)'xlsApp.ActiveSheet.PageSetup.CenterHeader = "标题" '页眉设置。
EXCEL常用VBA代码

删除B列中字符串数值少于21的单元格所在的行Sub 删除行()r = Range("B65536").End(xlUp).Row '行数For h = r To 1 Step -1If Cells(h, 2) < 21 Then Cells(h, 2).EntireRow.DeleteNextEnd Sub-------------------------【工作表合并】将同一工作簿中的所有工作表合并到一个工作表中新建一个工作表,写入代码[在新建的工作表标签处右键查看代码(找不到的直接按一下alt+F11) 把下面的代码复制进去然后点上面的运行运行子程序即可]:Sub 合并当前工作簿下的所有工作表()Application.ScreenUpdating = FalseFor j = 1 To Sheets.CountIf Sheets(j).Name <> ThenX = Range("A65536").End(xlUp).Row + 1Sheets(j).UsedRange.Copy Cells(X, 1)End IfNextRange("B1").SelectApplication.ScreenUpdating = TrueMsgBox "当前工作簿下的全部工作表已经合并完毕!", vbInformation, "提示"End Sub*********************************************************代码这样写也行:Sub c()For i = Sheets.Count To 2 Step -1Sheets(i).SelectSheets(i).UsedRange.CopySheets(1).SelectCells(Cells(65000, 1).End(xlUp).Row + 1, 1).SelectActiveSheet.Paste'Sheets(i).DeleteNext iEnd Sub************************************************************把一个工作簿中的所有表单合并成一个表单,怎么去掉重复的表头、标题行?方法如下:Sub c()For i = Sheets.Count To 2 Step -1Sheets(i).UsedRange.Offset(1).Copy Sheets(1).Cells(65536, 1).End(xlUp).Offset(1) Next iEnd Sub说明:函数OFFSET(reference,rows,cols,height,width)以指定的引用为参照系,通过给定偏移量得到新的引用。
EXCELWPS VBA宏代码大全

EXCEL/WPS VBA宏代码大全Application.Dialogs(1).Show是调用打开对话框Application.Dialogs(5或145).Show是调用另存为对话框,Application.Dialogs(6).Show是删除文档Application.Dialogs(7).Show是页面设置Application.Dialogs(8).Show是打印对话框Application.Dialogs(9).Show是选择打印机对话框Application.Dialogs(12).Show是重排窗口设置对话框Application.Dialogs(17).Show宏对话框Application.Dialogs(23).Show设置打印标题Application.Dialogs(26).Show字体设置对话框Application.Dialogs(27).Show显示选项Application.Dialogs(28).Show保护工作表Application.Dialogs(32).Show重算选项Application.Dialogs(39或192).Show排序Application.Dialogs(40).Show序列选项Application.Dialogs(41).Show模拟运算表Application.Dialogs(42或111).Show单元格格式,选择单元格内容的格式Application.Dialogs(43).Show选择单元格字体的排列格式,横排或竖排等Application.Dialogs(44或134或190).Show字体选择Application.Dialogs(45).Show边框格式设置Application.Dialogs(46).Show对单元格的保护或隐藏选项Application.Dialogs(47).Show列宽设置选项Application.Dialogs(52).Show清除对话框Application.Dialogs(53).Show选择性粘贴对话框Application.Dialogs(54).Show删除对话框Application.Dialogs(55).Show插入对话框Application.Dialogs(61或110).Show定义名称对话框Application.Dialogs(62).Show指定名称Application.Dialogs(63或132).Show定位Application.Dialogs(64).Show查找Application.Dialogs(84).Show设置单元格颜色和图案Application.Dialogs(91).Show分列Application.Dialogs(94).Show取消或隐藏工作表选择对话框Application.Dialogs(95).Show工作区视图等选项Application.Dialogs(103).Show选择要激活哪个工作表对话框Application.Dialogs(108).Show复制图片选项Application.Dialogs(119).Show新建对话框Application.Dialogs(127).Show设置行高Application.Dialogs(130).Show替换对话框Application.Dialogs(137).Show拆分当前窗口Application.Dialogs(161).Show设置图表颜色Application.Dialogs(170或171).Show移动当前窗口Application.Dialogs(191).Show合并计算对话框Application.Dialogs(198).Show单变量求解Application.Dialogs(199).Show选定成组工作表Application.Dialogs(200).Show填充成组工作表。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
工作表1、'隐藏SHEET1这张工作表sheets("sheet1").Visible=False2、'显示SHEET1这张工作表sheets("sheet1").Visible=True3、'同时选择工作表1和工作表2Worksheets(Array(“sheet1”,”sheet2”)).Select4、'删除工作表1 Sheets(“sheet1”).Delete或Sheets(1).Delete5、'将该表格保存到C:\test.xls 目录ExcelSheet.SaveAs "C:\TEST.XLS"6、'在第1工作表前添加新工作表Sheets.Add before:=Sheets(1)7、'在最后工作表后添加新工作表Sheets.Add after:=Sheets(Sheets.Count)8、'删除当前工作表ActiveWindow.SelectedSheets.Delete可以用以下语句删除当前工作表。
ActiveSheet.Delete9、保护工作表使其不至被修改。
Sheets(“工作表名”).Protect (Password)10、撤销工作表保护使其被修改。
Sheets(“工作表名”).Unprotect (Password)示例:Sheets(“sheet1”).Protect “123456”Sheets(“sheet1”).Unprotect “123456”11、添加工作表Sheets.Add12、当前工作表命名 = "www"13、选定下(上)一个工作表sheets(activesheet.index-1).select sheets(activesheet.index+1).select 14、'取消工作表标签ActiveWindow.DisplayWorkbookTabs = False15、'格式_工作表不能重命名mandBars("Sheet").Controls(1).Enabled= False16、'取消工作表标签ActiveWindow.DisplayWorkbookTabs = False17、'右键菜单不能重命名mandBars.FindControl(ID:=889).Enabled = False18、'工作表加密Worksheets(″基础数据表″).Protect Password:="1234"19、'深度隐藏工作表Sheet1.Visible = 220、'显示工作表Sheet1.Visible = -121、‘当前工作表中已使用的行数edRange.Rows.Count22、Rows.Count ‘获取工作表的行数(注:考虑向前兼容性)23、Sheets(Sheet1).Name= “Sum”'将Sheet1命名为Sum24、ThisWorkbook.Sheets.Add Before:=Worksheets(1) '添加一个新工作表在第一工作表前25、ActiveSheet.Move After:=ActiveWorkbook. _Sheets(ActiveWorkbook.Sheets.Count) '将当前工作表移至工作表的最后26、Sheets(“sheet1”).Delete或Sheets(1).Delete '删除工作表127、ActiveWorkbook.Sheets(i).Name '获取工作表i的名称28、'切换工作表中的网格线显示,这种方法也可以用在其它方面进行相互切换,即相当于开关按钮ActiveWindow.DisplayGridlines=Not ActiveWindow.DisplayGridlines 29、‘切换工作表中的行列边框显示ActiveWindow.DisplayHeadings=Not ActiveWindow.DisplayHeadings 30、edRange.FormatConditions.Delete ‘删除当前工作表中所有的条件格式31、'将页面设置更改为横向ActiveSheet.PageSetup.Orientation=xlLandscape或ActiveSheet.PageSetup.Orientation=232、‘在页面设置的表尾中输入文件路径ActiveSheet.PageSetup.RightFooter=ActiveWorkbook.FullName33 ‘将用户名放置在活动工作表的页脚ActiveSheet.PageSetup.LeftFooter=erName34、‘两个关键字排序,相邻两列,B列为主关键字,A列为次关键字,升序排列ActiveSheet.Range("A:B").Sort Key1:=Columns("B"), Key2:=Columns("A"), _ Header:=xlYes 35、'开启数据记录单ActiveS heet.ShowDataForm工作簿1、定制自己的状态栏Application.StatusBar = "现在时刻: " & Time2、恢复自己的状态栏Application.StatusBar = false3、关闭屏幕更新Application.ScreenUpdate=False4、'打开屏幕刷新Application.ScreenUpdating=True5、删除一个文件kill "c:\1.txt"6、'退出EXCEL Application.Quit7、‘将文本写到状态栏Application.StatusBar=”请等待……”8、‘更新状态栏文本,以变量Percent代表完成的百分比Application.StatusBar=”请等待……”& Percent & “% Completed”9、MkDir "D:\Music" 建立文件夹的方法10、打开文件夹的方法ActiveWorkbook.FollowHyperlink Address:="D:\Music", NewWindow:=True11、'以本工作表名称另存文件到当前目录ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & & ".xls"12、新建Workbooks.Add打开Workbooks.Open "路径\" & "文件名 .xls"13、关闭同时保存Workbooks("filename.xls").Close savechanges:=True14、.关闭同时不保存Workbooks("filename.xls").Close savechanges:=False15、.Excel程序的关闭Application.Quit16、关闭Excel的警告提示。
Application.DisplayAlerts = False17、' 全屏显示Application.DisplayFullScreen = True18、不保存直接关闭当前的工作簿Workbooks("BOOK1.XLS").Close SaveChanges:=False19、不保存直接关闭EXCEL窗口(关闭所有的工作簿)的VBA语句Application.DisplayAlerts=False Application.Quit20、'保护工作簿ActiveSheet.Protect21、'取消保护工作簿ActiveSheet.Unprotect22、'给当前工作簿改名为"liu" = "liu"23、'增加一个工作簿Worksheets.Add24、'删除当前工作簿activesheet.delete25、'打开一个文件Workbooks.Open FileName:="C:\My Documents\Book2.xls"26、'关闭当前工作簿ActiveWindow.Close27、‘返回工作簿代码的名称ActiveWorkbook.CodeNameThisWorkbook.CodeName28、‘返回当前工作簿的路径(注:若未保存,则为空) ThisWorkbook.Path ActiveWorkbook.Path29、‘将状态栏重新设置成正常状态Application.StatusBar=False30、‘返回活动工作表的名称31、‘返回活动窗口的标题Application.ActiveWindow.Caption32、‘返回活动工作簿的名称33、去掉XLS文件头上菜单栏的“MIcrosoft EXCEL ”字样Application.Caption = "专用表格"34、设置15 秒后运行my_Procedure 过程,从现在开始计时。
Application.OnTime Now + TimeValue("00:00:15"), "my_Procedure"35、设定my_Procedure 这个宏在下午5 点开始执行。
Application.OnTime TimeValue("17:00:00"), "my_Procedure"36、以某一单元格中的值为文件名保存ActiveWorkbook.SaveCopyAs Str(Range("Sheet1!A1")) + ".xls"37、ThisWorkbook.Save '保存工作簿38、ActiveWorkbook.Sheets.Count '获取活动工作薄中工作表数39、 '返回活动工作薄的名称40、 ‘返回当前工作簿名称ThisWorkbook.FullName ‘返回当前工作簿路径和名称41、ActiveWindow.EnableResize=False ‘禁止调整活动工作簿的大小42、Application.Wind ow.Arrange xlArrangeStyleTiled ‘将工作簿以平铺方式排列43、ActiveWorkbook.WindowState=xlMaximized ‘将当前工作簿最大化44、‘返回当前工作簿的名称Dim fs, d, sSet fs = CreateObject("Scripting.FileSystemObject")Set d = fs.GetDrive(fs.GetDriveName(fs.GetAbsolutePathName(ThisWorkbook.P ath)))s = d.serialnumber '磁盘序列号If s = 要使用的电脑磁盘序列号Then Exit SubDim FirstDate, de, daysFirstDate = Datede = GetSetting("XXX", "YYY", "date", "") '从注册表取值If de = "" Then '如果取不到值SaveSetting "XXX", "YYY", "date", FirstDate '把日期保存到注册表MsgBox "本文件可使用120天,今天是第1次使用", , "提示"Elsedays = Date - CDate(de) '计算文件使用的天数If days > 120 Then '如果文件使用超过60天MsgBox "已超过使用期限,本文件将自杀", , "警告"ThisWorkbook.ChangeFileAccess xlReadOnly '改为只读属性Kill ThisWorkbook.FullName '自杀ThisWorkbook.Close False '关闭不保存End IfMsgBox "本文件已使用" & days & "天,还有" & 120 - days & "天可使用", , "提示"End If。