永发信息网

学习宏程序的技巧请教

答案:2  悬赏:20  手机版
解决时间 2021-05-14 13:42
学习宏程序的技巧请教
最佳答案

Excel-VBA常用宏应用技巧


Excel-常用宏技巧
本示例为设置密码窗口 (1)


If Application.InputBox("请输入密码:") = 1234 Then


[A1] = 1 '密码正确时执行


Else: MsgBox "密码错误,即将退出!" '此行与第2行共同设置密码


End If



本示例为设置密码窗口 (1)


X = MsgBox("是否真的要结帐?", vbYesNo)


If X = vbYes Then


Close



本示例为设置工作表密码


ActiveSheet.Protect Password:=641112 ' 保护工作表并设置密码


ActiveSheet.Unprotect Password:=641112 '撤消工作表保护并取消密码



'本示例关闭除正在运行本示例的工作簿以外的其他所有工作簿,并保存其更改内容。


For Each w In Workbooks


If w.Name <> ThisWorkbook.Name Then


w.Close SaveChanges:=True


End If


Next w



'每次打开工作簿时,本示例都最大化 Microsoft Excel 窗口。


Application.WindowState = xlMaximized



'本示例显示活动工作表的名称。


MsgBox "The name of the active sheet is " & ActiveSheet.Name



'本示例保存当前活动工作簿的副本。


ActiveWorkbook.SaveCopyAs "C:\TEMP\XXXX.XLS"



'下述过程激活工作簿中的第四张工作表。


Sheets(4).Activate



'下述过程激活工作簿中的第1张工作表。


Worksheets(1).Activate



'本示例通过将 Saved 属性设为 True 来关闭包含本段代码的工作簿,并放弃对该工作簿的任何更改。


ThisWorkbook.Saved = True


ThisWorkbook.Close



'本示例对自动重新计算功能进行设置,使 Microsoft Excel 不对第一张工作表自动进行重新计算。


Worksheets(1).EnableCalculation = False



'下述过程打开 C 盘上名为 MyFolder 的文件夹中的 MyBook.xls 工作簿。


Workbooks.Open ("C:\MyFolder\MyBook.xls")



'本示例显示活动工作簿中工作表 sheet1 上单元格 A1 中的值。


MsgBox Worksheets("Sheet1").Range("A1").Value



本示例显示活动工作簿中每个工作表的名称


For Each ws In Worksheets


MsgBox ws.Name


Next ws



本示例向活动工作簿添加新工作表 , 并设置该工作表的名称?


Set NewSheet = Worksheets.Add


NewSheet.Name = "current Budget"



本示例将新建的工作表移到工作簿的末尾


'Private Sub Workbook_NewSheet(ByVal Sh As Object)


Sh.Move After:=Sheets(Sheets.Count)


End Sub



本示例将新建工作表移到工作簿的末尾


'Private Sub App_WorkbookNewSheet(ByVal Wb As Workbook, _


ByVal Sh As Object)


Sh.Move After:=Wb.Sheets(Wb.Sheets.Count)


End Sub



本示例新建一张工作表,然后在第一列中列出活动工作簿中的所有工作表的名称。


Set NewSheet = Sheets.Add(Type:=xlWorksheet)


For i = 1 To Sheets.Count


NewSheet.Cells(i, 1).Value = Sheets(i).Name


Next i



本示例将第十行移到窗口的最上面?


Worksheets("Sheet1").Activate


ActiveWindow.ScrollRow = 10



当计算工作簿中的任何工作表时,本示例对第一张工作表的 A1:A100 区域进行排序。


'Private Sub Workbook_SheetCalculate(ByVal Sh As Object)


With Worksheets(1)


.Range("a1:a100").Sort Key1:=.Range("a1")


End With


End Sub


本示例显示工作表 Sheet1 的打印预览。


Worksheets("Sheet1").PrintPreview



本示例保存当前活动工作簿?


ActiveWorkbook.Save



本示例保存所有打开的工作簿,然后关闭 Microsoft Excel。


For Each w In Application.Workbooks


w.Save


Next w


Application.Quit



下例在活动工作簿的第一张工作表前面添加两张新的工作表?


Worksheets.Add Count:=2, Before:=Sheets(1)



本示例设置 15 秒后运行 my_Procedure 过程,从现在开始计时。


Application.OnTime Now + TimeValue("00:00:15"), "my_Procedure"



本示例设置 my_Procedure 在下午 5 点开始运行。


Application.OnTime TimeValue("17:00:00"), "my_Procedure"



本示例撤消前一个示例对 OnTime 的设置。


Application.OnTime EarliestTime:=TimeValue("17:00:00"), _


Procedure:="my_Procedure", Schedule:=False



每当工作表重新计算时,本示例就调整 A 列到 F 列的宽度。


'Private Sub Worksheet_Calculate()


Columns("A:F").AutoFit


End Sub



本示例使活动工作簿中的计算仅使用显示的数字精度。


ActiveWorkbook.PrecisionAsDisplayed = True



本示例将工作表 Sheet1 上的 A1:G37 区域剪下,并放入剪贴板。


Worksheets("Sheet1").Range("A1:G37").Cut



Calculate 方法


计算所有打开的工作簿、工作簿中的一张特定的工作表或者工作表中指定区域的单元格,如下表所示:


'要计算 '依照本示例


所有打开的工作簿 ' Application.Calculate (或只是 Calculate)


指定工作表 '计算指定工作表Sheet1 Worksheets("Sheet1").Calculate


指定区域 'Worksheets(1).Rows(2).Calculate



本示例对自动重新计算功能进行设置,使 Microsoft Excel 不对第一张工作表自动进行重新计算。


Worksheets(1).EnableCalculation = False



本示例计算 Sheet1 已用区域中 A 列、B 列和 C 列的公式。


Worksheets("Sheet1").UsedRange.Columns("A:C").Calculate



本示例更新当前活动工作簿中的所有链接?


ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources



本示例设置第一张工作表的滚动区域?


Worksheets(1).ScrollArea = "a1:f10"



本示例新建一个工作簿,提示用户输入文件名,然后保存该工作簿。


Set NewBook = Workbooks.Add


Do


fName = Application.GetSaveAsFilename


Loop Until fName <> False


NewBook.SaveAs Filename:=fName



本示例打开 Analysis.xls 工作簿,然后运行 Auto_Open 宏。


Workbooks.Open "ANALYSIS.XLS"


ActiveWorkbook.RunAutoMacros xlAutoOpen



本示例对活动工作簿运行 Auto_Close 宏,然后关闭该工作簿。


With ActiveWorkbook


.RunAutoMacros xlAutoClose


.Close


End With



在本示例中,Microsoft Excel 向用户显示活动工作簿的路径和文件名称。


'Sub UseCanonical()


Display the full path to user.


MsgBox ActiveWorkbook.FullNameURLEncoded


End Sub



本示例显示当前工作簿的路径及文件名(假定尚未保存此工作簿)。


MsgBox ActiveWorkbook.FullName



本示例关闭 Book1.xls,并放弃所有对此工作簿的更改。


Workbooks("BOOK1.XLS").Close SaveChanges:=False



本示例关闭所有打开的工作簿。如果某个打开的工作簿有改变,Microsoft Excel 将显示询问是否保存更改的对话框和相应提示。


Workbooks.Close



本示例在打印之前对当前活动工作簿的所有工作表重新计算?


'Private Sub Workbook_BeforePrint(Cancel As Boolean)


For Each wk In Worksheets


wk.Calculate


Next


End Sub



本示例对查询表一中的第一列数据进行汇总,并在数据区域下方显示第一列数据的总和。


Set c1 = Sheets("sheet1").QueryTables(1).ResultRange.Columns(1)


c1.Name = "Column1"


c1.End(xlDown).Offset(2, 0).Formula = "=sum(Column1)"



本示例取消活动工作簿中的所有更改?


ActiveWorkbook.RejectAllChanges



本示例在商业问题中使用规划求解函数,以使总利润达到最大值。SolverSave 函数将当前问题保存到活动工作表上的某一区域。


Worksheets("Sheet1").Activate


SolverReset


SolverOptions Precision:=0.001


SolverOK SetCell:=Range("TotalProfit"), _


MaxMinVal:=1, _


ByChange:=Range("C4:E6")


SolverAdd CellRef:=Range("F4:F6"), _


Relation:=1, _


FormulaText:=100


SolverAdd CellRef:=Range("C4:E6"), _


Relation:=3, _


FormulaText:=0


SolverAdd CellRef:=Range("C4:E6"), _


Relation:=4


SolverSolve UserFinish:=False


SolverSave SaveArea:=Range("A33")



本示例隐藏 Chart1、Chart3 和 Chart5。


Charts(Array("Chart1", "Chart3", "Chart5")).Visible = False



当激活工作表时,本示例对 A1:A10 区域进行排序。


'Private Sub Worksheet_Activate()


Range("a1:a10").Sort Key1:=Range("a1"), Order:=xlAscending


End Sub



本示例更改 Microsoft Excel 链接。


ActiveWorkbook.ChangeLink "c:\excel\book1.xls", _


"c:\excel\book2.xls", xlExcelLinks



本示例启用受保护的工作表上的自动筛选箭头?


ActiveSheet.EnableAutoFilter = True


ActiveSheet.Protect contents:=True, userInterfaceOnly:=True



本示例将活动工作簿设为只读?


ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly



本示例使共享工作簿每三分钟自动更新一次?


ActiveWorkbook.AutoUpdateFrequency = 3



下述 Sub 过程清除活动工作簿中 Sheet1 上的所有单元格的内容。


'Sub ClearSheet()


Worksheets("Sheet1").Cells.ClearContents


End Sub

全部回答
O1121; N10 G65 H03 P#100 Q#500 R#501 #100=L-α; N20 N10 G65 H03 P#101 Q#504 R#100 #101=H-#100; N30 G90 G00 X#101; X轴定位 N40 M20; 剪切指令 N50 G65 H03 P#100 Q#100 R#502 #100-ΔX; N60 G65 H85 P-10 Q#100 R#503 IF #100≥β THEN N10; N70 M99; 用户宏程序的主程序实例如下: O0121; (#500~#504用MDI 键盘设定) N80 G92 X0; N90 M98 P1121; N100 X0; N110 M30;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
讷河市艺声家电维修这个地址在什么地方,我要
厦门到沈阳过路费多少,买一辆25-31座的客车
2009年房山谁最走红?
求东方神起手机屏保和QQ表情
什么是分组数据?
尉氏县新网络在什么地方啊,我要过去处理事情
昆山路线图
随便给几个次中音萨克斯的流行歌曲的谱子
我可以和我的表妹结婚吗?(是我爷爷的亲妹妹
qq牧场最近怎么不生宝宝了
武陟县木城卫生院在哪里啊,我有事要去这里
谁有金山毒霸2011通行证~~谢谢
开黄钻能加速QQ升级吗?
PSP有关恋爱的游戏
求有avi格式视频歌曲免费下载的网站等等
推荐资讯
荷塘区每天惠(兴欣店)我想知道这个在什么地方
怎么进行胎儿教育
魏都区艺奥传媒培训中心地址有谁知道?有点事
为什么现在上不了雅虎的博客?
周公解梦梦见自己被黑色的蛇咬
这样是流感吗?
QQ幻想世界技术测试完会删档吗?
高手帮我看看这样的配置是否合理呢?单配主机
解婚约后还可以再结婚吗?还用再买戒指吗?
索爱U100I是否支持歌词同步?
听说基督教这个教派非常排斥别的教派?
关于莱科宁的在麦克拉伦时的一个视频,歌曲是e
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?