VBA收集(2)

2019-04-05 16:37

要计算 依照本示例

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

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

expression 对于 Application 对象可选,对于 Worksheet 对象和 Range 对象必需。该表达式返回―应用于‖列表中的对象之一。 示例

本示例计算 Sheet1 已用区域中 A 列、B 列和 C 列的公式。 Worksheets(\程序的核心是算法问题 40、End 属性

参阅应用于示例特性返回一个 Range 对象,该对象代表包含源区域的区域尾端的单元格。等同于按键 End+ 向上键、End+ 向下键、End+ 向左键或 End+ 向右键。Range 对象,只读。 expression.End(Direction)

expression 必需。 该表达式返回―应用于‖列表中的对象之一。 Direction XlDirection 类型,必需。所要移动的方向。 XlDirection 可为 XlDirection 常量之一。 xlDown xlToRight xlToLeft xlUp 示例

本示例选定包含单元格 B4 的区域中 B 列顶端的单元格。 Range(\

本示例选定包含单元格 B4 的区域中第 4 行尾端的单元格。 Range(\

本示例将选定区域从单元格 B4 延伸至第四行最后一个包含数据的单元格。 Worksheets(\

Range(\ToRight)).Select

41、应用于 CellFormat 和 Range 对象的 Locked 属性。

本示例解除对 Sheet1 中 A1:G37 区域单元格的锁定,以便当该工作表受保护时也可对这些单元格进行修改。 Worksheets(\ Worksheets(\42、Next 属性

参阅应用于示例特性返回一个 Chart、Range 或 Worksheet 对象,该对象代表下一个工作表或单元格。只读。 说明

如果指定对象为区域,则本属性的作用是仿效 Tab,但本属性只是返回下一单元格,并不选定它。

在处于保护状态的工作表中,本属性返回下一个未锁定单元格。在未保护的工作表中,本属性总是返回紧靠指定单元格右边的单元格。 示例

本示例选定 sheet1 中下一个未锁定单元格。如果 sheet1 未保护,选定的单元格将是紧靠活动单元格右边的单元格。 Worksheets(\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) = \ r = r + 1

For s = 1 To CommandBars(i).Controls.Count

ActiveSheet.Cells(r, 1) = s & \、\ r = r + 1 Next Next End Sub

44、本示例设置 Microsoft Excel 每当打开包含链接的文件时,询问用户是否更新链接。 Application.AskToUpdateLinks = True 45、自定义函数 Public Function Now1() Dim string1 As String string1 = VBA.Date Now1 = string1 End Function 46、复制 Sub copy1()

Sheet2.Range(\End Sub

47、如何统计表中sheet的个数? msgbox sheets.count Columns(\

48、 Selection.EntireColumn.Hidden = True

这样隐藏有个毛病,如何解决?如果A1:G1单元格合并的话,就把A:G列均隐藏了。 Columns(\49、在VBA中引用excel函数的方法

1). Worksheets(\2). Sheet1.Cells(1,1).Formula = \ 在宏中用R1C1方式写时表格1的A1中会在写为―=Sheet2!$D$1‖ 用这种方式,想用什么函数就用什么函数. 50、选定下(上)一个工作表 sheets(activesheet.index-1).select sheets(activesheet.index+1).select 51、Private Sub Workbook_Open()

ActiveWindow.DisplayWorkbookTabs = False '取消工作表标签

Application.CommandBars(\格式_工作表不能重命名 Application.CommandBars.FindControl(ID:=889).Enabled = False '右键菜单不能重命名 End Sub

52、 [a65536].End(xlUp‘A列从下往上第一个非空的单元格 53、Sub macro()

Set rng = Range(\ 定义RNG为一个单元格区域

For Each cel In rng 定义CEL为RNG中的一个任一单元格 colo = cel.Interior.ColorIndex 定义 COLO 为单元格CEL的填充颜色 If colo <> -4142 Then 如果COLO的值不等于-4142 iR = [b65536].End(xlUp).Row + 1 IR等于B列数据区域的行数+1

If [a65535].End(xlUp).Value <> Cells(cel.Row, 2) Then Cells(iR, 1) = Cells(cel.Row, 2)

如果A列最后一个非空值单元格 不等于Cells(cel.Row, 2) 的值 那么单元格Cells(iR, 1) 的值等于Cells(cel.Row, 2) 的值 CEL.ROW是C11:F13中任意单元格的行号 Cells(iR, 2) = Cells(10, cel.Column) Cells(iR, 3) = cel.Value

Cells(iR, 4) = IIf(colo = 36, \ed\ Cells(iR, 4) 的值如果colo = 36那么值为\否则值为\next End Sub

54、Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) '**********运行数据日志记录********** Dim rng As Range

If ActiveSheet.Name <> \主界面\目录索引\ For Each rng In Target.Cells

Changecell = ActiveSheet.Name & \,单元格:\,更改为:\。更改时间:\& Now

CritOrAddtext Next End If End Sub

55、ActiveSheet.Unprotect '撤销当前工作表保护

If ActiveSheet.Name <> \主界面\目录索引\ '行变色 On Error Resume Next

[ChangColor_With].FormatConditions.Delete Target.EntireRow.Name = \th\With [ChangColor_With].FormatConditions .Delete

.Add xlExpression, , \ .Item(1).Interior.ColorIndex = 4 End With End If

ActiveSheet.Protect

56、在C1中弄个下拉无表,实际是有效性,你可以选择A1:A4为C1单元格有效性的序列数据源,如果说C1不与A1:A4在同一表,则不能这么用,应当先对A1:A4命名,然后把数据源改为名称. 57、自动增加工作表

进入宏命令编辑窗口,在Sub 自动增加工作表()命令后依次键入如下宏命令内容: Dim i&, userinto i = 0

userinto = InputBox(\输入插入工作表数量:\If IsNumeric(userinto) = True Then Do Until i = userinto Worksheets.Add i = i + 1

Loop End If End Sub

58、方法一(共享级锁定):

1、先对EXCEL文件进行一般的VBAProject‖工程密码保护。

2、打开要保护的文件,选择:工具--->保护--->保护并共享工作簿--->以追踪修订方式共享-->输入密码-->保存文件。 完成后,当你打开―VBAProject‖工程属性时,就将会提示:―工程不可看!― 方法二(推荐,破坏型锁定):

用16进制编辑工具,如WinHex、Ultraedit-32(可到此下载)等,再历害点的人完全可以用debug命令来做......用以上软件打开EXCEL文件,查找定位以下地方:

ID=\ 注:实际显示不会全部为0 此时,你只要将其中的字节随便修改一下即可。保存再打开,就会发现大功告成!

当然,在修改前最好做好你的文档备份。至于恢复只要将改动过的地方还原即可(只要你记住了呵呵)。 顺便说一句,这种方法仍然是可破解的,因为加密总是相对的 。 59、Sub AddComments()

'自動對ActiveSheet所有有公式格位加上註解 Set RG = Cells.SpecialCells(xlCellTypeFormulas) For Each c In RG c.AddComment

c.Comment.Text Text:=c.Formula Next c End Sub

Sub De_Comments() '自動消除所有註解

Set RG = Cells.SpecialCells(xlCellTypeFormulas) For Each c In RG c.ClearComments Next c End Sub

60、如何在Excel里使用定时器

www.aspsky.net 2002-3-12 20:53:27 动网先锋

用过 Excel 97 里的加载宏 \定时保存\吗?可惜它的源程序是加密的,现在就上传一篇介绍实现它的文档。 在 Office 里有个方法是 application.ontime ,具体函数如下: expression.OnTime(EarliestTime, Procedure, LatestTime, Schedule) 如果想进一步了解,请参阅 Excel 的帮助。

这个函数是用来安排一个过程在将来的特定时间运行,(可为某个日期的指定时间,也可为指定的时间段之后)。通过这个函数我们就可以在 Excel 里编写自己的定时程序了。下面就举两个例子来说明它。 1.在下午 17:00:00 的时候显示一个对话框。 Sub Run_it()

Application.OnTime TimeValue(\ '设置定时器在 17:00:00 激活,激活后运行 Show_my_msg 。 End Sub

Sub Show_my_msg()

msg = MsgBox(\现在是 17:00:00 !\自定义信息\ End Sub

2.模仿 Excel 97 里的 \自动保存宏\在这里定时 5 秒出现一次

Sub auto_open()

MsgBox \欢迎你,在这篇文档里,每 5 秒出现一次保存的提示!\请注意!\ Call runtimer '打开文档时自动运行 End Sub Sub runtimer()

Application.OnTime Now + TimeValue(\t\

' Now + TimeValue(\指定在当前时间过 5 秒钟开始运行 Saveit 这个过程。 End Sub Sub SaveIt()

msg = MsgBox(\朋友,你已经工作很久了,现在就存盘吗?\ & \选择是:立刻存盘\ & \选择否:暂不存盘\

& \选择取消:不再出现这个提示\休息一会吧!\ '提示用户保存当前活动文档。

If msg = vbYes Then ActiveWorkbook.Save Else If msg = vbCancel Then Exit Sub Call runtimer '如果用户没有选择取消就再次调用 Runtimer End Sub

以上只是两个简单的例子,有兴趣的话,可以利用 Application.Ontime 这个函数写出更多更有用的定时程序。 Sub Show_my_msg()

msg = MsgBox(\现在是 17:00:00 !\自定义信息\ End Sub

2.模仿 Excel 97 里的 \自动保存宏\在这里定时 5 秒出现一次 Sub auto_open()

MsgBox \欢迎你,在这篇文档里,每 5 秒出现一次保存的提示!\请注意!\ Call runtimer '打开文档时自动运行 End Sub Sub runtimer()

Application.OnTime Now + TimeValue(\t\

' Now + TimeValue(\指定在当前时间过 5 秒钟开始运行 Saveit 这个过程。 End Sub 接上面

61、Excel 最重要的应用就是利用公式进行计算。无论输入是纯粹的数字运算,还是引用其他单元格计算,只要在一个单元格中输入公式,就能得到结果。这个直接显示结果的设计对于绝大多数场合来说都是适用的,但某些情况下就不那么让人满意了。比如说在做工程施工的预结算编写,使用Excel,既要写出工程量的计算式,也要看到它的结果,于是这样相同的公式在Excel里面要填两次,一次在文本格式的单元格中输入公式,一次是在数据格式的单元格中输入公式让Excel计算结果。如何既能看到公式又能看到结果呢?这个问题笔者认为可以从两个方面考虑:一种方法是所谓―已知结果,显示公式‖,先在数据格式单元格中输入公式让Excel计算结果,然后在相邻的单元格中看到公式;另一种方法所谓―已知公式,显示结果‖,就是先在一个文本格式的单元格中输入公式,在相邻的单元格中看到结果。★已知结果,显示公式

假设C列为通过公式计算得到的结果(假设C1为―=A1+B1‖,或者直接是数字运算―=2+3‖),而相邻的D列是你需要显示公式的地方(即D1应该显示为―=A1+B1‖或者―=2+3‖)。 1. 打开―工具‖菜单选择―选项‖命令,出现―选项‖对话框。 2. 在―常规‖选项卡中,选中―R1C1引用方式‖选项。

3. 定义名称,将―引用位置‖由―=GET.CELL(6,Sheet1!RC[-1])‖即可。这里的RC[-1]含义是如果在当前单元格的同行前一列单


VBA收集(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:锅炉给水泵运行中的故障及解决方法

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: