搜档网
当前位置:搜档网 › VBA常用代码

VBA常用代码

VBA常用代码
VBA常用代码

VBA编程常用代码

用过VB的人都应该知道如何声明变量,在VBA中声明变量和VB中是完全一样的!使用Dim语句

Dim a as integer '声明a为整型变量

Dim a '声明a为变体变量

Dim a as string '声明a为字符串变量

Dim a as currency ,b as currency ,c as currency '声明a,b,c为货币变量......

声明变量可以是:Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal(当前不支持)、Date、String(只限变长字符串)、String * length (定长字符串)、Object、Variant、用户定义类型或对象类型。

强制声明变量

Option Explicit

说明:该语句必在任何过程之前出现在模块中。

声明常数

用来代替文字值。

Const

' 常数的默认状态是 Private。

Const My = 456

' 声明 Public 常数。

Public Const MyString = "HELP"

' 声明 Private Integer 常数。

Private Const MyInt As Integer = 5

' 在同一行里声明多个常数。

Const MyStr = "Hello", MyDouble As Double = 3.4567

选择当前单元格所在区域

在EXCEL97中,有一个十分好的功能,他就是把鼠标放置在一个有效数据单元格中,执行该段代码,你就可以将连在一起的一片数据全部选中。只要将该段代码加入到你的模块中。

Sub My_Select

Selection.CurrentRegion.Select

End sub

返回当前单元格中数据删除前后空格后的值

sub my_trim

msgbox Trim(ActiveCell.Value)

end sub

单元格位移

sub my_offset

ActiveCell.Offset(0, 1).Select'当前单元格向左移动一格

ActiveCell.Offset(0, -1).Select'当前单元格向右移动一格

ActiveCell.Offset(1 , 0).Select'当前单元格向下移动一格

ActiveCell.Offset(-1 , 0).Select'当前单元格向上移动一格

end sub

如果上述程序产生错误那是因为单元格不能移动,为了解除上述错误,我们可以往

sub my_offset 之下加一段代码 on error resume next

注意以下代码都不再添加sub “代码名称” 和end sub请自己添加!

给当前单元格赋值

ActiveCell.Value = "你好!!!"

给指定单元格赋值

例如:A1单元格内容设为"HELLO"

Range("a1").value="hello"

又如:你现在的工作簿在sheet1上,你要往sheet2的A1单元格中插入"HELLO"

1.

sheets("sheet2").select

range("a1").value="hello"

2.

Sheets("sheet1").Range("a1").Value = "hello"

说明:

1.sheet2被选中,然后在将“HELLO"赋到A1单元格中。

2.sheet2不必被选中,即可“HELLO"赋到sheet2 的A1单元格中。

隐藏工作表

'隐藏SHEET1这张工作表

sheets("sheet1").Visible=False

'显示SHEET1这张工作表

sheets("sheet1").Visible=True

打印预览

有时候我们想把所有的EXCEL中的SHEET都打印预览,请使用该段代码,它将在你现有的工作簿中循环,直到最后一个工作簿结束循环预览。

Dim my As Worksheet

For Each my In Worksheets

my.PrintPreview

Next my

得到当前单元格的地址

msgbox ActiveCell.Address

得到当前日期及时间

msgbox date & chr(13) & time

保护工作簿

ActiveSheet.Protect

取消保护工作簿

ActiveSheet.Unprotect

给活动工作表改名为 "liu"

https://www.sodocs.net/doc/c9280551.html, = "liu"

打开一个应用程序

AppActivate (Shell("C:WINDOWSCALC.EXE"))

增加一个工作表

Worksheets.Add

删除活动工作表

activesheet.delete

打开一个工作簿文件

Workbooks.Open FileName:="C:My DocumentsBook2.xls" 关闭活动窗口

ActiveWindow.Close

单元格格式

选定单元格左对齐

Selection.HorizontalAlignment = xlLeft

选定单元格居中

Selection.HorizontalAlignment = xlCenter

选定单元格右对齐

Selection.HorizontalAlignment = xlRight

选定单元格为百分号风格

Selection.Style = "Percent"

选定单元格字体为粗体

Selection.Font.Bold = True

选定单元格字体为斜体

Selection.Font.Italic = True

选定单元格字体为宋体20号字

With Selection.Font

.Name = "宋体"

.Size = 20

End With

With 语句

With 对象

.描述

End With

清除单元格

ActiveCell.Clear '删除所有文字、批注、格式

返回选定区域的行数

MsgBox Selection.Rows.Count

返回选定区域的列数

MsgBox Selection.Columns.Count

返回选定区域的地址

Selection.Address

忽略所有的错误

ON ERROR RESUME NEXT

遇错跳转

on error goto err_handle

'中间的其他代码

err_handle: ' 标签

'跳转后的代码

删除一个文件

kill "c:1.txt"

定制自己的状态栏

Application.StatusBar = "现在时刻: " & Time

恢复自己的状态栏

Application.StatusBar = false

用代码执行一个宏

Application.Run macro:="text"

滚动窗口到a1的位置

ActiveWindow.ScrollRow = 1

ActiveWindow.ScrollColumn = 1

定制系统日期

Dim MyDate, MyDay

MyDate = #12/12/69#

MyDay = Day(MyDate)

返回当天的时间

Dim MyDate, MyYear

MyDate = Date

MyYear = Year(MyDate)

MsgBox MyYear

inputbox<输入框>

XX=InputBox ("Enter number of months to add")

得到一个文件名

Dim kk As String

kk = Application.GetOpenFilename("EXCEL (*.XLS), *.XLS", Title:="提示:请打开一个EXCEL文件:")

msgbox kk

打开zoom对话框

Application.Dialogs(xlDialogZoom).Show

激活字体对话框

Application.Dialogs(xlDialogActiveCellFont).Show

打开另存对话框

Dim kk As String

kk = Application.GetSaveAsFilename("excel (*.xls), *.xls") Workbooks.Open kk

1 excle快捷键大全

对工具栏进行操作的快捷键

激活菜单栏,F10,Alt

选定前一个或下一个工具栏,Ctrl+Tab或Ctrl+Shift+Tab

选定工具栏中的下一个或前一个按钮或菜单,Tab或Shift+Tab(当某个工具栏被激活时)

打开选定的菜单,Enter

运行选按钮的操作,Enter

在选定的文本框中输入文本,Enter

在对话框中使用的快捷键

取消当前任务,Esc

单击相应命令,Alt+下划线字母

单击选定的按钮,Enter

在选项中前移,Tab

在选项后移,Shift+Tab

在选项卡中前移,Ctrl+Tab

在选项卡中后移,Ctrl+Shift+Tab

刷新“另存为”或“打开”对话框,F5

插入、删除和复制选定区域的快捷键

复制选定区域,Ctrl+C

粘贴选定区域,Ctrl+V

剪切选定区域,Ctrl+X

清除选定区域的内容,Delete

插入空白单元格,Ctrl+Shift+加号

删除选定区域,Ctrl+-

撤消最后一次操作,Ctrl+Z

使用“office助手”需要用到的快捷键

关闭“office助手”提供的消息,Esc

通过“office助手”获取帮助信息,F1

显示下一项提示,Alt+N

显示前一项提示,Alt+B

在向导中显示或隐藏“office助手”,空格键

对窗口进行操作的快捷键

切换到下一个程序,Alt+Tab

切换到前一个程序,Alt+Shift+Tab

显示windwos“开始”菜单,Ctrl+Esc

关闭活动工作薄窗口,Ctrl+W

恢复活动工作薄窗口,Ctrl+F5

切换到下一个工作薄窗口,Ctrl+F6

切换到前一个工作薄窗口,Ctrl+Shift+F6

执行“移动”命令(菜单栏中的工作薄图标菜单),Ctrl+F7

运行“大小”命令(菜单栏中的工作薄图标菜单),Ctrl+F8

将工作薄窗口最小化为图标,Ctrl+F9

最大化或恢复工作薄窗口,Ctrl+F10

在“打开”或“另存为”对话框中更新可见的文件,F5

使用对话框进行操作的快捷键

切换到对话框中的下一个选项卡,Ctrl+Tab或Ctrl+PageDown

切换到对话框中的前一个选项卡,Ctrl+Shift+Tab或Ctrl+PageUp

移动到下一个选项或选项组,Tab

移动到前一个选项或选项组,Shift+Tab

在活动下拉列表框的选项间移动,或在选项组选项间移动,方向键

招待活动按钮的操作,或选定或清除当前复选框,空格键

取消命令或关闭对话框,Esc

在文本框中进行操作的快捷键

移动到内容的开始,Home

移动到内容的最后,End

向左或向右移动一个字符,左右方向键

向左或向右移动一个字,Ctrl+左右方向键

选定从插入点到开始的输入内容,Shift+Home

选定从插入点到最后的输入内容,Shift+End

选定或取消左面的一个字符,Shift+左方向键

选定或取消右面的一个字符,Shift+右方向键

选定或取消左面的一个字,Ctrl+Shift+左方向键

选定或取消右面的一个字,Ctrl+Shift+右方向键

在工作表和工作薄中选定单元格、列、行或对象的快捷键

选定当前单元格周围的区域,Ctrl+Shift+*(星号)

将选定区域扩展一个单元格宽度,Shift+方向键

将选定区域扩展到与活动单元格同一行或同一列的最后一个非空白单元格,Ctrl+Shift+方向键

将选定区域扩展到行首,Shift+Home

将选定区域扩展到工作表的开始,Ctrl+Shift+Home

将选定区域扩展到工作表的最后一个包含数据的单元格,Ctrl+Shift+End 选定整列,Ctrl+空格键

选定整行,Shift+空格键

选定整个工作表,Ctrl+A

若已选定多个单元格,则只选定其中的活动单元格,Shift+Backspace

将选定区域向下扩展一屏,Shift+PageDown

将选定区域向上扩展一屏,Shift+PageUp

在选定一个对象时,选定工作表上的所有对象,Ctrl+Shift+空格键

在隐藏对象、显示对象与对象占位符之间切换,Ctrl+6

显示或隐藏“常用”工具栏,Ctrl+7

分级显示数据的快捷键

取消行或列分组,Alt+Shift+左方向键

对行或列分组,Alt+Shift+右方向键

显示或隐藏分级显示符号,Ctrl+8

隐藏选定行,Ctrl+9

取消隐藏选定行,Ctrl+Shift+(

隐藏选定列,Ctrl+0

取消隐藏选定列,Ctrl+Shift+)

编辑单元格的快捷键

完成单元格输入,Enter

取消单元格输入,Esc

重复单元格一次操作,F4或Ctrl+Y

在单元格中折行,Alt+Enter

删除插入点左边的字符或删除选定区域,Backspace

删除插入点右边的字符或删除选定区域,Delete

向上下左右移动一个字符,方向键

移到行首,Home

移到行尾,End

编辑单元格批注,Shift+F2

由行或列标志创建名称,Ctrl+Shift+F3

向下填充,Ctrl+D

向右填充,Ctrl+R

用当前输入项填充选定的单元格区域,Ctrl+Enter

完成单元格输入并在选定区域中下移,Enter

完成单元格输入并在选定区域中上移,Shift+Enter

完成单元格输入并在选定区域中右移,Tab

完成单元格输入并在选定区域中左移,Shift+Tab

在单元格或编辑栏中使用的快捷键

键入公式,=(等号)

取消单元格或编辑栏中的输入项,Esc

编辑当前单元格,F2

编辑活动单元格并清除其内容,或在编辑时删除前一个字符,Backspace

将名称粘贴到公式中,F3

定义名称,Ctrl+F3

计算所有打开工作薄中的所有工作表,F9

计算活动工作表,Shift+F9

输入“自动求和”公式,Alt+=(等号)

输入日期,Ctrl+;

输入时间,Ctrl+Shift+:

插入超级链接,Ctrl+K

完成单元格输入,Enter

将当前单元格上方单元格中的数值复制到当前单元格或编辑栏,Ctrl+Shift+(双引号)

将当前单元格上方单元格中的公式复制到当前单元格或编辑栏,Ctrl+'(单引号) 在显示单元格值与单元格公式间转换,Ctrl+`(撇号)

输入数组公式,Ctrl+Shift+Enter

键入有效函数名后,显示公式选项板,Ctrl+A

键入有效函数名后,为该函数插入变量名和括号,Ctrl+Shift+A

显示“记忆式键入”列表,Ctrl+下方向键

快捷键与数据格式设置

显示“样式”命令,Alt+'(单引号)

显示“单元格”命令,Ctrl+1

应用常规数字格式,Ctrl+Shift+~

应用带两个小数位的“贷币”格式,Ctrl+Shift+$

应用不带小数位的“百分比”格式,Ctrl+shift+%

应用带两个小数位的“科学记数”数字格式,,Ctrl+shift+^

应用年月日“日期”格式,Ctrl+shift+#

应用小时和分钟“时间”格式,并表明上午或下午,Ctrl+shift+@

应用外边框,Ctrl+shift+&

取消选定单元格区域中的所有边框,Ctrl+shift+_

应用或取消字体加粗格式,Ctrl+B

应用或取消字体倾斜格式,Ctrl+I

应用或取消字体下划线格式,Ctrl+U

应用或取消删除线格式,Ctrl+5

隐藏行,Ctrl+9

取消隐藏行,Ctrl+Shift+(

隐藏列,Ctrl+0

取消隐藏列,Ctrl+Shift+)

使用 Excel 2003 工作表的 VBA 示例

适用范围:

Microsoft Office Excel 2003

摘要:寻找能够为 Excel 工作表增加额外功能的宏。只需稍加练习,您就可以扩展这些程序,使其适合您自己的应用程序。

本页内容

引言

导出带有逗号和引号分隔符的文本文件

计算包含公式、文本或数字的单元格数量

使用 Saved 属性确定工作簿是否已发生更

合并数据列

数组中的总行数和总列数

结论

引言

本文介绍几个 Microsoft Visual Basic for Applications (VBA) 宏,您可以使用这些宏为 Microsoft Office Excel 2003 工作簿和工作表增加额外的功能。这些宏将为您的应用程序提供新的功能或增强现有的功能。阅读示例的同时,您应该寻找扩展这些宏的方法,以适合您自己的情况。

导出带有逗号和引号分隔符的文本文件

Excel 没有自动将数据导出为文本文件的菜单命令,因此导出的文本文件同时带有逗号和引号分隔符。例如,没有命令能自动创建包含以下内容的文本文件:"Text1","Text2","Text3"

但是,您可以使用 VBA 宏在 Excel 中创建该功能。这种文件格式是在诸如Microsoft Office Access 2003 和 Microsoft Office Word 2003 之类的应用程序中导入文本数据时常见的格式。

您可以在如下所示的 VBA 宏中使用 Print 语句,导出同时带有逗号和引号分隔符的文本文件。要使该程序正常运行,必须在运行该程序之前选择包含数据的单元格。

使用以下示例之前,请执行以下步骤:

1. 打开一个新工作簿。

2. 在“工具”菜单中,指向“宏”,然后单击“Vis ual Basic 编辑器”(或者简单地按下 ALT+F11 组合键)。在“Visual Basic 编辑器”中,单击“插入”菜单,然后单击“模块”。

3. 将以下示例代码键入或粘贴到模块中:

Sub QuoteCommaExport()

Dim DestFile As String

Dim FileNum As Integer

Dim ColumnCount As Integer

Dim RowCount As Integer

' 提示用户指定目标文件名。

DestFile = InputBox("Enter the destination filename" & _

Chr(10) & "(with complete path and extension):", _

"Quote-Comma Exporter")

' 获取下一个可用的文件句柄编号。

FileNum = FreeFile()

' 关闭错误检查功能。

On Error Resume Next

' 尝试打开目标文件以供输出。

Open DestFile For Output As #FileNum

' 如果出现错误,则报告错误并结束程序。

If Err <> 0 Then

MsgBox "Cannot open filename " & DestFile

End

End If

' 打开错误检查功能。

On Error GoTo 0

' 循环选择的每一行。

For RowCount = 1 To Selection.Rows.Count

' 循环选择的每一列。

For ColumnCount = 1 To Selection.Columns.Count

' 将当前单元格中的文本写入到文件中,文本用引号括起来。

Print #FileNum, """" & Selection.Cells(RowCount, _

ColumnCount).Text & """";

' 检查单元格是否位于最后一列。

If ColumnCount = Selection.Columns.Count Then

' 如果是,则写入一个空行。

Print #FileNum,

Else

' 否则,则写入一个逗号。

Print #FileNum, ",";

End If

' 开始 ColumnCount 循环的下一个迭代。

Next ColumnCount

' 开始 RowCount 循环的下一个迭代。

Next RowCount

' 关闭目标文件。

Close #FileNum

End Sub

4. 运行该宏之前,请选择要导出的数据,然后在“工具”菜单中指向“宏”并单击“宏”。

5. 选择 QuoteCommaExport 宏,然后单击“运行”。

计算包含公式、文本或数字的单元格数量

在 Excel 中,您可以对包含公式、文本或数字的工作表中的单元格数量进行计算,方法是使用“定位条件”对话框选择单元格,然后运行计算所选单元格数量的宏。例如,当您需要设置表格以确定合计列的每一行是否都包含公式而不用手动检查每一行时,此方法可能很有用。

选择单元格

要选择公式、文本或数字,请执行以下步骤:

1. 在“编辑”菜单中,单击“定位”,然后单击“定位条件”。

2. 在“定位条件”对话框中,要选择所有公式,请单击“公式”并确保选中“数字”、“文本”、“逻辑值”以及“错误”复选框。要选择文本,请选择“常量”选项,然后仅单击并选中“文本”复选框。要选择数字,请选择“常量”选项,然后仅单击并选中“数字”复选框。

计算所选单元格数量的 VBA 代码

要计算所选的单元格数量并在消息框中显示计算结果,请使用以下程序:

Sub Count_Selection()

Dim cell As Object

Dim count As Integer

count = 0

For Each cell In Selection

count = count + 1

Next cell

MsgBox count & " item(s) selected"

End Sub

您可以将此程序指定给一个命令按钮,这样,当您单击该按钮时,将显示所选项的数量。

使用 Saved 属性确定工作簿是否已发生更改

可以通过检查工作簿的 Saved 属性来确定工作簿是否已发生更改。根据工作簿是否发生了更改,Saved 属性将返回 True 或 False 值。

注意:用户除了可以通过“事件”设置 Saved 属性外,还可以通过代码将其设置为 True 或 False。本节包含的示例宏说明了如何在这两种情况下使用 Saved 属性。

工作表中的各种情况(例如存在可变函数)都可能会影响 Saved 属性。可变函数是指工作表中每次发生更改时都会重新计算的函数,而不管发生的更改是否影响到这些函数。某些常见的可变函数包括 RAND()、NOW()、TODAY() 和 OFFSET()。如果活动工作簿包含未保存的更改,第一个宏将显示如下消息:

Sub TestForUnsavedChanges()

If ActiveWorkbook.Saved = False Then

MsgBox "This workbook contains unsaved changes."

End If

End Sub

下一个宏将关闭包含示例代码的工作簿并放弃对工作簿所做的所有更改:

Sub CloseWithoutChanges()

ThisWorkbook.Saved = True

ThisWorkbook.Close

End Sub

下面的示例宏也将关闭工作簿并放弃更改:

Sub CloseWithoutChanges()

ThisWorkbook.Close SaveChanges:=False

End Sub

合并数据列

在 Excel 中,可以使用宏合并两个相邻列中的数据并在包含数据的右侧列中显示结果,完全不需要手动设置公式。本节包含的示例宏就可以实现此功能。

Sub ConcatColumns()

Do While ActiveCell <> "" ' 一直循环,直到活动单元格为空。

ActiveCell.Offset(0, 1).FormulaR1C1 = _

ActiveCell.Offset(0, -1) & " " & ActiveCell.Offset(0, 0)

ActiveCell.Offset(1, 0).Select

Loop

End Sub

要使用宏,请执行以下步骤:

1. 打开包含数据的工作簿。

2. 按 ALT+F11 组合键激活“Visual Basic 编辑器”。

3. 在“插入”菜单中,单击“模块”以插入一个模块。在模块的代码窗口中键入上面的宏。

4. 单击“文件”菜单中的“关闭并返回到Microsoft Excel”。

5. 选择包含要合并的数据的工作表。

6. 单击要合并的右侧数据列的第一个单元格。例如,如果单元格 A1:A100 和

B1:B100 包含数据,则单击单元格 B1。

7. 在“工具”菜单中,指向“宏”并单击“宏”。选择 ConcatColumns 宏并单击“运行”。

注意:可以用语句 ActiveCell.Offset(0, 1).Formula 替换语句

ActiveCell.Offset(0, 1).FormulaR1C1。如果仅使用文本和数字(不包含公式),那么两个语句的效果相同。第一个语句末尾使用的 R1C1 表示第一行的第一列,这是 Excel 帮助主题中大多数示例使用的形式。

数组中的总行数和总列数

在 Excel 中,可以使用数组来计算和操作工作表中的数据,还可以使用宏将某个范围内的单元格中的值存储到一个数组中。本节中的示例宏代码将在一个矩形单元格区域中添加一行和一列,以包含该区域中每一行和每一列中的单元格总数。

具体的步骤是,代码从活动工作表上活动单元格周围的当前单元格区域中读取数据。宏将这些数据存储在一个数组中,计算每一行和每一列中的单元格总数,然后将输出显示在工作表中。数组的大小由当前区域中的单元格数量决定。

注意:此宏不会在工作表中添加任何公式,因此如果该范围内的单元格总数有变化,则必须重新运行宏。

使用以下示例之前,请执行以下步骤:

1. 打开一个新工作簿。

2. 在“工具”菜单中,指向“宏”,然后单击“Visual Basic 编辑器”(或者简单地按下 ALT+F11 组合键)。在“Visual Basic 编辑器”中的“插入”菜单中,单击“模块”。

将以下示例代码键入或粘贴到模块中:

Sub TotalRowsAndColumns()

' 此宏假定您已从

' 要计算单元格总数的矩形区域内

' 选择了一个单元格或一组单元格。行和列的单元格总数将出现在

' 当前区域下面的行和右侧的列中。

Dim r As Integer

Dim c As Integer

Dim i As Integer

Dim j As Integer

Dim myArray As Variant

' 将 myArray 声明为变量将使数组可以接收

' 一组单元格。此时,数组将自动转换为

' 以下标 myArray(1,1) 开始的数组。

' 指当前所选单元格周围的区域。

With Selection.CurrentRegion

r = .Rows.Count

c = .Columns.Count

' 重新计算总行数和总列数并将结果存储到数组中。

myArray = .Resize(r + 1, c + 1)

' 在下面的嵌套循环中,变量 i 跟踪

' 行号,变量 j 跟踪

' 列号。j 在可用列中每循环一次,

' i 就递增一,而 j

' 则重新从一到 c 循环一次。

For i = 1 To r

For j = 1 To c

' 行 i 的总数

myArray(i, c + 1) = myArray(i, c + 1) + myArray(i, j)

' 列 j 的总数

myArray(r + 1, j) = myArray(r + 1, j) + myArray(i, j)

' 总计

myArray(r + 1, c + 1) = myArray(r + 1, c + 1) + myArray(i, j)

Next j

Next i

' 将数组返回工作表,数组中现在包含一个

' 新行和一个新列,用于存储总数。

.Resize(r + 1, c + 1) = myArray

End With

End Sub

3. 突出显示要求和区域中的一个单元格,在“工具”菜单中,指向“宏”并单击“宏”。

4. 选择 TotalRowsAndColumns 宏,然后单击“运行”。

注意:要执行与本示例中的运算类似的运算,可以修改宏代码。例如,要对选定范围内的单元格中包含的值进行减法、乘法或除法运算,可以更改数学运算符。

结论

本文介绍了各种 VBA 宏,使用这些宏可以减少使用工作表所需的工作量。此外,您还可以修改本文介绍的大多数宏以扩展它们的功能。始终记住可以在工具或提示库中添加更多宏,您将会受益匪浅。

VBA系列讲座(1):VBA是什么?

1.1 VBA是什么

直到90年代早期,使应用程序自动化还是充满挑战性的领域.对每个需要自动化的应用程序,人们不得不学习一种不同的自动化语言.例如:可以用EXCEL的

宏语言来使EXCEL自动化,使用WORD BASIC使WORD自动化,等等.微软决定让它开发出来的应用程序共享一种通用的自动化语言--------Visual Basic For Application(VBA),可以认为VBA是非常流行的应用程序开发语言VASUAL BASIC 的子集.实际上VBA是"寄生于"VB应用程序的版本.VBA和VB的区别包括如下几个方面:

1. VB是设计用于创建标准的应用程序,而VBA是使已有的应用程序(EXCEL 等)自动化

2. VB具有自己的开发环境,而VBA必须寄生于已有的应用程序.

3. 要运行VB开发的应用程序,用户不必安装VB,因为VB开发出的应用程序是可执行文件(*.EXE),而VBA开发的程序必须依赖于它的"父"应用程序,例如EXCEL.

尽管存在这些不同,VBA和VB在结构上仍然十分相似.事实上,如果你已经了解了VB,会发现学习VBA非常快.相应的,学完VBA会给学习VB打下坚实的基础.而且,当学会在EXCEL中用VBA创建解决方案后,即已具备在WORD ACCESS OUTLOOK FOXPRO PROWERPOINT 中用VBA创建解决方案的大部分知识.

* VBA一个关键特征是你所学的知识在微软的一些产品中可以相互转化.

* VBA可以称作EXCEL的“遥控器”.

VBA究竟是什么?更确切地讲,它是一种自动化语言,它可以使常用的程序自动化,可以创建自定义的解决方案.

此外,如果你愿意,还可以将EXCEL用做开发平台实现应用程序.

1.2 EXCEL环境中基于应用程序自动化的优点

也许你想知道VBA可以干什么?使用VBA可以实现的功能包括:

1. 使重复的任务自动化.

2. 自定义EXCEL工具栏,菜单和界面.

3. 简化模板的使用.

4. 自定义EXCEL,使其成为开发平台.

5. 创建报表.

6. 对数据进行复杂的操作和分析.

用EXCEL作为开发平台有如下原因:

1. EXCEL本身功能强大,包括打印,文件处理,格式化和文本编辑.

2. EXCEL内置大量函数.

3. EXCEL界面熟悉.

4. 可连接到多种数据库.

用其他语言开发应用程序,一半的工作是编写一些基本功能的模块,包括文件的打开和保存,打印,复制等.而用EXCEL作为开发平台,则由于EXCEL已经具备这些基本功能,你要做的只是使用它.

1.3 录制简单的宏

在介绍学习VBA之前,应该花几分钟录制一个宏。

新术语:“宏”,指一系列EXCEL能够执行的VBA语句。

以下将要录制的宏非常简单,只是改变单元格颜色。请完成如下步骤:

1)打开新工作簿,确认其他工作簿已经关闭。

2)选择A1单元格。调出“常用”工具栏。

3)选择“工具”—“宏”—“录制新宏”。

4)输入“改变颜色”作为宏名替换默认宏名,单击确定,注意,此时状态栏

中显示“录制”,特别是“停止录制”工具栏也显示出来。替换默认宏名主要是便于分别这些宏。

★ 宏名最多可为255个字符,并且必须以字母开始。其中可用的字符包括:字母、数字和下划线。宏名中不允许出现空格。通常用下划线代表空格。

5)选择“格式”的“单元格”,选择“图案”选项中的红色,单击“确定”。

6)单击“停止录制”工具栏按钮,结束宏录制过程。

※ 如果“停止录制”工具栏开始并未出现,请选择“工具”—“宏”—“停止录制”。

录制完一个宏后就可以执行它了。

1.4 执行宏

当执行一个宏时,EXCEL按照宏语句执行的情况就像VBA代码在对EXCEL进行“遥控”。但VBA的“遥控”不仅能使操作变得简便,还能使你获得一些使用EXCEL标准命令所无法实现的功能。而且,一旦熟悉了EXCEL的“遥控”,你都会奇怪自己在没有这些“遥控”的情况下,到底是怎么熬过来的。要执行刚才录制的宏,可以按以下步骤进行:

1)选择任何一个单元格,比如A3。

2)选择“工具”—“宏”—“宏”,显示“宏”对话框。

3)选择“改变颜色”,选择“执行”,则A3单元格的颜色变为红色。试着选择其它单元格和几个单元格组成的区域,然后再执行宏,以便加深印象。

1.5 查看录制的代码

到底是什么在控制EXCEL的运行呢?你可能有些疑惑.好,让我们看看VBA的语句吧.

1)选择“工具”—“宏”—“宏”,显示“宏”对话框。

2)单击列表中的“改变颜色”,选择“编辑”按钮。

此时,会打开VBA的编辑器窗口(VBE)。关于该编辑器,以后再详细说明,先将注意力集中到显示的代码上。代码如下:(日期和姓名会有不同)

Sub 改变颜色()

’ 改变颜色 Macro

’ xw 记录的宏 2000-6-10

With Selection.Interior

.ColorIndex = 3

.Pattern = xlSolid

.PatternColorIndex = xlAutomatic

End With

End Sub

将来会十分熟悉这种代码,虽然现在它们看上去像一种奇怪的外语。学习VBA

或编程语言在某种程度上比较像在学习一种外语。

Sub 改变颜色():这是宏的名称。

中间的以“ ’”开头的五行称为“注释”,它在录制宏时自动产生。

以With 开头到End With 结束的结构是With结构语句,这段语句是宏的主要部分。注意单词“selection”,它代表“突出显示的区域”(即:选定区域)。

With Selection.Interior :它读作“选择区域的的内部”.这整段语句设置该区域内部的一些“属性”。

其中:

.ColorIndex = 3: 将该内部设为红色。注意:有一小圆点,它的作用在于简化语句,小圆点代替出现在With后的词,它是With结构的一部分。另外:红色被数字化为3.(红色警戒是否可称作:3号警戒,嗯?)有兴趣的话,你将3改为其他数字试试看。

.Pattern = xlSolid:设置该区域的内部图案。由于是录制宏,所以,虽然你并未设置这一项,宏仍然将其记录下来(因为在“图案”选项中有此一项,只是你为曾设置而已)。xlSolid表示纯色。

.PatternColorIndex = xlAutomatic:表示内部图案底纹颜色为自动配色。

End With:结束With 语句。

End Sub:整个宏的结束语

1.6 编辑录制的代码

在上一节,我们录制了一个宏并查看了代码,代码中有两句实际上并不起作用。哪两句?现在,在宏中作一个修改,删除多余行,直到和下面代码相同:Sub 改变颜色()

’ 改变颜色 Macro

’ xw 记录的宏 2000-6-10

With Selection.Interior

.ColorIndex = 3

End With

End Sub

完成后,在工作表中试验一下。你会发现结果和修改前的状况一样。在With 语句前加入一行:

Range("A5").Select

试着运行该宏,则无论开始选择哪个单元格,宏运行结果都是使A5单元格变红.

现在可以看到,编辑录制的宏同样非常简单。需要编辑宏是因为以下三个方面的原因。一:在录制中出错而不得不修改。二:录制的宏中有多余的语句需要删除,提高宏的运行速度。三:希望增加宏的功能。比如:加入判断或循环等无法录制的语句。

1.7 录制宏的局限性

希望自动化的许多EXCEL过程大多都可以用录制宏来完成.但是宏记录器存在以下局限性.通过宏记录器无法完成的工作有:

1)录制的宏无判断或循环能力.

2)人机交互能力差,即用户无法进行输入,计算机无法给出提示.

3)无法显示EXCEL对话框.

4)无法显示自定义窗体.

单片机汇编指令大全

单片机汇编指令一览表 作者:乡下人 助记符指令说明字节数周期数 (数据传递类指令) MOV A,Rn 寄存器传送到累加器 1 1 MOV A,direct 直接地址传送到累加器 2 1 MOV A,@Ri 累加器传送到外部RAM(8 地址) 1 1 MOV A,#data 立即数传送到累加器 2 1 MOV Rn,A 累加器传送到寄存器 1 1 MOV Rn,direct 直接地址传送到寄存器 2 2 MOV Rn,#data 累加器传送到直接地址 2 1 MOV direct,Rn 寄存器传送到直接地址 2 1 MOV direct,direct 直接地址传送到直接地址 3 2 MOV direct,A 累加器传送到直接地址 2 1 MOV direct,@Ri 间接RAM 传送到直接地址 2 2 MOV direct,#data 立即数传送到直接地址 3 2 MOV @Ri,A 直接地址传送到直接地址 1 2 MOV @Ri,direct 直接地址传送到间接RAM 2 1 MOV @Ri,#data 立即数传送到间接RAM 2 2 MOV DPTR,#data16 16 位常数加载到数据指针 3 1 MOVC A,@A+DPTR 代码字节传送到累加器 1 2 MOVC A,@A+PC 代码字节传送到累加器 1 2 MOVX A,@Ri 外部RAM(8 地址)传送到累加器 1 2 MOVX A,@DPTR 外部RAM(16 地址)传送到累加器 1 2 MOVX @Ri,A 累加器传送到外部RAM(8 地址) 1 2 MOVX @DPTR,A 累加器传送到外部RAM(16 地址) 1 2 PUSH direct 直接地址压入堆栈 2 2 POP direct 直接地址弹出堆栈 2 2 XCH A,Rn 寄存器和累加器交换 1 1 XCH A, direct 直接地址和累加器交换 2 1 XCH A, @Ri 间接RAM 和累加器交换 1 1 XCHD A, @Ri 间接RAM 和累加器交换低4 位字节 1 1 (算术运算类指令) INC A 累加器加1 1 1 INC Rn 寄存器加1 1 1 INC direct 直接地址加1 2 1 INC @Ri 间接RAM 加1 1 1 INC DPTR 数据指针加1 1 2 DEC A 累加器减1 1 1 DEC Rn 寄存器减1 1 1 DEC direct 直接地址减1 2 2

excelvba常见字典用法集锦及代码详解(全)

常见字典用法集锦及代码详解 前言 凡是上过学校的人都使用过字典,从新华字典、成语词典,到英汉字典以及各种各样数不胜数的专业字典,字典是上学必备的、经常查阅的工具书。有了它们,我们可以很方便的通过查找某个关键字,进而查到这个关键字的种种解释,非常快捷实用。 凡是上过EH论坛的想学习VBA里面字典用法的,几乎都看过研究过northwolves狼版主、oobird版主的有关字典的精华贴和经典代码。我也是从这里接触到和学习到字典的,在此,对他们表示深深的谢意,同时也对很多把字典用得出神入化的高手们致敬,从他们那里我们也学到了很多,也得到了提高。 字典对象只有4个属性和6个方法,相对其它的对象要简洁得多,而且容易理解使用方便,功能强大,运行速度非常快,效率极高。深受大家的喜爱。 本文希望通过对一些字典应用的典型实例的代码的详细解释来

给初次接触字典和想要进一步了解字典用法的朋友提供一点备查的参考资料,希望大家能喜欢。 给代码注释估计是大家都怕做的,因为往往是出力不讨好的,稍不留神或者自己确实理解得不对,还会贻误他人。所以下面的这些注释如果有不对或者不妥当的地方,请大家跟帖时指正批评,及时改正。 字典的简介 字典(Dictionary)对象是微软Windows脚本语言中的一个很有用的对象。 附带提一下,有名的正则表达式(RegExp)对象和能方便处理驱动器、文件夹和文件的(FileSystemObject)对象也是微软Windows脚本语言中的一份子。 字典对象相当于一种联合数组,它是由具有唯一性的关键字(Key)和它的项(Item)联合组成。就好像一本字典书一样,是

网页设计试题及html代码

2.2.3 字型设置标记 功能:设置文字的风格,如黑体、斜体、带下划线等,这是一组标记,它们可以单独使用,也可以混合使用产生复合修饰效果。常用的标记有以下一些: :文字以粗体显示。 :文字显示为斜体。 :显示下划线。 :删除线。 :使文字大小相对于前面的文字增大一级。 :使文字大小相对于前面的文字减小一级。 :使文字成为前一个字符的上标。 :使文字成为前一个字符的下标。 :使文字显示为闪烁效果。 :以等宽体显示西文字符。 :输出引用方式的字体,通常是斜体。 :强调文字,通常用斜体加黑体。 :特别强调的文字,通常也是斜体加黑体。 注:有些标记的效果必须在动态环境下才能显示,例如 标记。 【例2-4】字型设置标记的应用。 例如单标记


表示在文档当前位置画一条水平线,一般是从窗口中当前行的最左端一直画到最右端,它可以带这么一些属性:
。 功能:设置网页中普通文字的显示效果。 格式:文字。 格式:标题内容。 属性:n 表示标题字号的级别,可以是1~6之间的任意整数,数字越小,字号越大。 段落标记 功能:设置文章段落的开始和结束。浏览器在解释HTML文档时,会自动忽略文档中的回车、空格以及其他一些符号,所以在文档中输入回车,并不意味着在浏览器内将看到一个不同的段落,当需要在网页中插入新的段落时,可以使用段落标记,它可以将标记后面的内容另起一段。格式:

。 强制换行标记 功能:另起一行显示文字。 格式:
插入水平线标记 功能:在页面上画横线,可用于页面上内容的分割。 格式:
1.无序列表 功能:设置无序列表。 格式:
  • 列表项目1
  • 列表项目2 属性:在无序列表的开始和结束处,分别是
    标记,每一项列表条目之前必

    单片机蜂鸣器奏乐实验大全代码

    单片机蜂鸣器奏乐实验大 全代码 This manuscript was revised by the office on December 10, 2020.

    O R G0000H LJMP START ORG 000BH INC 20H ;中断服务,中断计数器加1 MOV TH0,#0D8H MOV TL0,#0EFH ;12M晶振,形成10毫秒中断 RETI START: MOV SP,#50H MOV TH0,#0D8H MOV TL0,#0EFH MOV TMOD,#01H MOV IE,#82H MUSIC0: NOP MOV DPTR,#DAT ;表头地址送DPTR MOV 20H,#00H ;中断计数器清0 MUSIC1: NOP CLR A MOVC A,@A+DPTR ;查表取代码 JZ END0 ;是00H,则结束 CJNE A,#0FFH,MUSIC5 LJMP MUSIC3 MUSIC5:NOP MOV R6,A INC DPTR MOV A,#0 MOVC A,@A+DPTR MOV R7,A SETB TR0 MUSIC2:NOP CPL MOV A,R6 MOV R3,A LCALL DEL MOV A,R7 CJNE A,20H,MUSIC2 MOV 20H,#00H INC DPTR LJMP MUSIC1 MUSIC3:NOP CLR TR0

    MOV R2,#0DH MUSIC4:NOP MOV R2,#0FFH LCALL DEL DJNZ R2,MUSIC4 INC DPTR LJMP MUSIC1 END0:NOP MOV R2,#0FFH MUSIC6:MOV R3,#00H LJMP MUSIC0 DEL:NOP DEL3:MOV R4,#02H DEL4:NOP DJNZ R4,DEL4 NOP DJNZ R3,DEL3 RET NOP DAT: DB 18H, 30H, 1CH, 10H DB 20H, 40H, 1CH, 10H DB 18H, 10H, 20H, 10H DB 1CH, 10H, 18H, 40H DB 1CH, 20H, 20H, 20H DB 1CH, 20H, 18H, 20H DB 20H, 80H, 0FFH, 20H DB 30H, 1CH, 10H , 18H DB 20H, 15H, 20H , 1CH DB 20H, 20H, 20H , 26H DB 40H, 20H , 20H , 2BH DB 20H, 26H, 20H , 20H DB 20H, 30H , 80H , 0FFH DB 20H, 20H, 1CH , 10H DB 18H, 10H, 20H , 20H DB 26H, 20H , 2BH , 20H DB 30H, 20H , 2BH , 40H DB 20H, 20H , 1CH , 10H DB 18H, 10H, 20H, 20H DB 26H, 20H , 2BH, 20H DB 30H, 20H, 2BH , 40H DB 20H, 30H, 1CH , 10H DB 18H, 20H , 15H , 20H DB 1CH, 20H , 20H , 20H

    VBA常用代码大全

    .、八、- 刖言 我们平时在工作表单元格的公式中常常使用函数,EGcel自带的常用的函数多达300多个, 功能强大,丰富多彩,但是在 VBA中不能直接应用,必须在函数名前面加上对象,比如:Applicatio n. WorksheetF un ctio n.Sum(arg1,arg2,arg3) 。 而能在VBA中直接应用的函数也有几十个,下面将逐一详细介绍常用的40个VBA函数, 以供大家学习参考。 第1.1例ASC函数 一、题目: 要求编写一段代码,运行后得到字符串”EGcel”的首字母和” e”的ASCII值。 二、代码: Sub 示例_1_01() DimmyNum1%,myNum2% myNum仁Asc("EGcel")'返回 69 myNum2=Asc("e")' 返回 101 [a1]="myNum 1=":[b1]=myNum1 [a2]="myNum2=":[b2]=myNum2 En dSub 三、代码详解 1、Sub示例_1_01():宏程序的开始语句。 2、DimmyNum1%,myNum2% :变量 myNum1 和 myNum2 声明为整型变量。 也可以写为DimmyNum1AsInteger 。Integer变量存储为16位(2个字节)的数值形式,

    其范围为-32,768到32,767之间。Integer的类型声明字符是百分比符号(%)。 3、myNum1=Asc("EGcel"):把 Asc 函数的值赋给变量 myNum1 。 Asc函数返回一个Integer,代表字符串中首字母的字符的 ASCII代码。 语法 Asc(stri ng) 必要的string (字符串)参数可以是任何有效的字符串表达式。如果string中没有包含任何字符,则会产生运行时错误。 4、myNum2=Asc("e"):把Asc函数的值赋给变量myNum2。这里返回小写字母e的ASCII 代码101。 5、 [a1]="myNum仁":[b1]=myNum1 :把字符串“ myNum仁“赋给A1单元格,把变量myNum1的值赋给B1单元格。 6、 [a2]="myNum2=":[b2]=myNum2 :把字符串“ myNum2= “赋给 A2 单元格,把变量myNum2的值赋给B2单元格。 7、 EndSub :程序的结束语句,和“ Sub示例_1_01 ()”相对应。 第1.2例Chr函数 一、题目"": 要求编写一段代码,运用 Chr函数将ASCII值转换为对应的字符 二、代码: Sub 示例_1_02() DimmyChar1$,myChar2$ myChar仁Chr(69)'返回 E。 myChar2=Chr(101)' 返回 e。 [a1]="myChar1=":[b1]=myChar1 [a2]="myChar2=":[b2]=myChar2

    Excel VBA常用代码VSTO版20150425

    21-1 使用工作表的名称 this.Application.Worksheets["工作表2"].Activate(); 21-2 使用工作的索引号 this.Application.Worksheets[2].Activate(); 21-3 使用工作表的代码名称 MessageBox.Show(this.Application.ActiveSheet.CodeName); 21-4 用ActiveSheet属性引用活动工作表 this.Application.Worksheets[2].Select(); MessageBox.Show(https://www.sodocs.net/doc/c9280551.html,); 22-1 选择工作表的方法 this.Application.Worksheets[2].Select(); this.Application.Worksheets[2].Activate(); 23-1 使用For遍历工作表 intwkCount = this.Application.Worksheets.Count; string s = string.Empty; for (inti = 1; i<= wkCount; i++) { s = s + this.Application.Worksheets[i].Name + "\n"; } MessageBox.Show("工作簿中含有以下工作表:" + "\n" + s); 23-2 使用ForEach语句 string s = string.Empty; foreach (Excel.Worksheetwk in this.Application.Worksheets) { s = s + https://www.sodocs.net/doc/c9280551.html, + "\n"; } MessageBox.Show("工作簿中含有以下工作表:" + "\n" + s); 24-1 在工作表中向下翻页 Excel.Sheetsshs=Globals.ThisWorkbook.Worksheets; Excel.WorksheetwkThis = shs.Application.ActiveSheet; Excel.WorksheetwkNext; intwkIndex = wkThis.Index; intwkCount = shs.Count; if (wkIndex

    [实用参考]VBA常用代码大全.doc

    前言 我们平时在工作表单元格的公式中常常使用函数,EGcel自带的常用的函数多达300多个,功能强大,丰富多彩,但是在VBA中不能直接应用,必须在函数名前面加上对象,比如:Application.WorksheetFunction.Sum(arg1,arg2,arg3)。 而能在VBA中直接应用的函数也有几十个,下面将逐一详细介绍常用的40个VBA函数,以供大家学习参考。 第1.1例ASC函数 一、题目: 要求编写一段代码,运行后得到字符串”EGcel”的首字母和”e”的ASCII值。二、代码: Sub示例_1_01() DimmyNum1%,myNum2% myNum1=Asc("EGcel")'返回69 myNum2=Asc("e")'返回101 [a1]="myNum1=":[b1]=myNum1 [a2]="myNum2=":[b2]=myNum2 EndSub 三、代码详解 1、Sub示例_1_01():宏程序的开始语句。 2、DimmyNum1%,myNum2%:变量myNum1和myNum2声明为整型变量。 也可以写为DimmyNum1AsInteger。Integer变量存储为16位(2个字节)的数值形式,其范围为-32,768到32,767之间。Integer的类型声明字符是百分比符号(%)。 3、myNum1=Asc("EGcel"):把Asc函数的值赋给变量myNum1。

    Asc函数返回一个Integer,代表字符串中首字母的字符的ASCII代码。 语法 Asc(string) 必要的string(字符串)参数可以是任何有效的字符串表达式。如果string中没有包含任何字符,则会产生运行时错误。 4、myNum2=Asc("e"):把Asc函数的值赋给变量myNum2。这里返回小写字母e的ASCII代码101。 5、[a1]="myNum1=":[b1]=myNum1:把字符串“myNum1=“赋给A1单元格,把变量myNum1的值赋给B1单元格。 6、[a2]="myNum2=":[b2]=myNum2:把字符串“myNum2=“赋给A2单元格,把变量myNum2的值赋给B2单元格。 7、EndSub:程序的结束语句,和“Sub示例_1_01()”相对应。 第1.2例Chr函数 一、题目"": 要求编写一段代码,运用Chr函数将ASCII值转换为对应的字符。 二、代码: Sub示例_1_02() DimmyChar1$,myChar2$ myChar1=Chr(69)'返回E。 myChar2=Chr(101)'返回e。 [a1]="myChar1=":[b1]=myChar1 [a2]="myChar2=":[b2]=myChar2 EndSub 三、代码详解

    51单片机50个实例代码

    51单片机50个例程代码程序里有中断,串口等驱动,直接复制即可使用1-IO输出-点亮1个LED灯方法1 /*----------------------------------------------- 名称:IO口高低电平控制 论坛:https://www.sodocs.net/doc/c9280551.html, 编写:shifang 日期:2009.5 修改:无 内容:点亮P1口的一个LED灯 该程序是单片机学习中最简单最基础的, 通过程序了解如何控制端口的高低电平 ------------------------------------------------*/ #include //包含头文件,一般情况不需要改动, //头文件包含特殊功能寄存器的定义 sbit LED=P1^0;// 用sbit 关键字定义LED到P1.0端口, //LED是自己任意定义且容易记忆的符号 /*------------------------------------------------ 主函数 ------------------------------------------------*/ void main (void) { //此方法使用bit位对单个端口赋值 LED=1; //将P1.0口赋值1,对外输出高电平 LED=0; //将P1.0口赋值0,对外输出低电平 while (1) //主循环 { //主循环中添加其他需要一直工作的程序 } } 2-IO输出-点亮1个LED灯方法2 /*-----------------------------------------------

    名称:IO口高低电平控制 论坛:https://www.sodocs.net/doc/c9280551.html, 编写:shifang 日期:2009.5 修改:无 内容:点亮P1口的一个LED灯 该程序是单片机学习中最简单最基础的, 通过程序了解如何控制端口的高低电平 ------------------------------------------------*/ #include //包含头文件,一般情况不需要改动, //头文件包含特殊功能寄存器的定义 /*------------------------------------------------ 主函数 ------------------------------------------------*/ void main (void) { //此方法使用1个字节对单个端口赋值 P1 = 0xFF; //P1口全部为高电平,对应的LED灯全灭掉, //ff换算成二进制是1111 1111 P1 = 0xfe; //P1口的最低位点亮,可以更改数值是其他的灯点亮 //0xfe是16进制,0x开头表示16进制数, //fe换算成二进制是1111 1110 while (1) //主循环 { //主循环中添加其他需要一直工作的程序 } } 3-IO输出-点亮多个LED灯方法1 /*----------------------------------------------- 名称:IO口高低电平控制 论坛:https://www.sodocs.net/doc/c9280551.html, 编写:shifang 日期:2009.5 修改:无 内容:点亮P1口的多个LED灯

    EXCEL常用VBA代码

    删除B列中字符串数值少于21的单元格所在的行 Sub 删除行() r = Range("B65536").End(xlUp).Row '行数 For h = r To 1 Step -1 If Cells(h, 2) < 21 Then Cells(h, 2).EntireRow.Delete Next End Sub ------------------------- 【工作表合并】将同一工作簿中的所有工作表合并到一个工作表中 新建一个工作表,写入代码[在新建的工作表标签处右键查看代码(找不到的直接按一下alt+F11) 把下面的代码复制进去然后点上面的运行运行子程序即可]: Sub 合并当前工作簿下的所有工作表() Application.ScreenUpdating = False For j = 1 To Sheets.Count If Sheets(j).Name <> https://www.sodocs.net/doc/c9280551.html, Then X = Range("A65536").End(xlUp).Row + 1 Sheets(j).UsedRange.Copy Cells(X, 1) End If Next Range("B1").Select Application.ScreenUpdating = True MsgBox "当前工作簿下的全部工作表已经合并完毕!", vbInformation, "提示" End Sub ********************************************************* 代码这样写也行: Sub c() For i = Sheets.Count To 2 Step -1 Sheets(i).Select Sheets(i).UsedRange.Copy Sheets(1).Select Cells(Cells(65000, 1).End(xlUp).Row + 1, 1).Select ActiveSheet.Paste 'Sheets(i).Delete Next i End Sub ************************************************************ 把一个工作簿中的所有表单合并成一个表单,怎么去掉重复的表头、标题行?方法如下:

    Excel VBA常用代码总结1

    Excel VBA常用代码总结1 改变背景色 Range("A1"). = xlNone ColorIndex一览 改变文字颜色 Range("A1"). = 1 获取单元格 Cells(1, 2) Range("H7") 获取范围 Range(Cells(2, 3), Cells(4, 5)) Range("a1:c3") '用快捷记号引用单元格 Worksheets("Sheet1").[A1:B5] 选中某sheet Set NewSheet = Sheets("sheet1") 选中或激活某单元格 '“Range”对象的的Select方法可以选择一个或多个单元格,而Activate方法可以指定某一个单元格为活动单元格。 '下面的代码首先选择A1:E10区域,同时激活D4单元格: Range("a1:e10").Select

    Range("d4:e5").Activate '而对于下面的代码: Range("a1:e10").Select Range("f11:g15").Activate '由于区域A1:E10和F11:G15没有公共区域,将最终选择F11:G15,并激活F11单元格。 获得文档的路径和文件名 '路径 '名称 '路径+名称 '或将ActiveWorkbook换成thisworkbook 隐藏文档 = False 禁止屏幕更新 = False 禁止显示提示和警告消息 = False 文件夹做成 strPath = "C:\temp\" MkDir strPath 状态栏文字表示 = "计算中" 双击单元格内容变换 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If>= 5And<= 8) Then If= "●"Then = "" Else = "●" End If Cancel = True End If End Sub 文件夹选择框方法1 Set objShell = CreateObject("") Set objFolder = (0, "文件", 0, 0) If Not objFolder Is Nothing Then path= & "\" end if

    HTML代码大全

    HTML(HyperText Mark-up Language)即超文本标记语言或超文本链接标示语言,是目前网络上应用最为广泛的语言,也是构成网页文档的主要语言。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字、图形、动画、声音、表格、链接等。HTML的结构包括头部(Head)、主体(Body)两大部分,其中头部描述浏览器所需的信息,而主体则包含所要说明的具体内容。 编辑本段HTML代码大全 1.结构性定义 文件类型 (放在档案的开头与结尾) 文件主题 (必须放在「文头」区块内) 文头 (描述性资料,像是「主题」) 文体 (文件本体) (由浏览器控制的显示风格) 标题 (从1到6,有六层选择) 标题的对齐 区分

    区分的对齐
    引文区块
    (通常会内缩) 强调 (通常会以斜体显示) 特别强调 (通常会以加粗显示) 引文 (通常会以斜体显示) 码 (显示原始码之用) 样本 键盘输入 变数 定义 (有些浏览器不提供) 地址
    大字 小字 与外观相关的标签(作者自订的表现方式) 加粗 斜体 底线 (尚有些浏览器不提供) 删除线 (尚有些浏览器不提供) 下标 上标 打字机体 (用单空格字型显示) 预定格式
     (保留文件中空格的大小) 预定格式的宽度 
    (以字元计算) 向中看齐 
    (文字与图片都可以) 闪耀 (有史以来最被嘲弄的标签) 字体大小 (从1到7) 改变字体大小

    单片机指令表(最全)

    单片机指令以A开头的指令有18条,分别为: 1、ACALL addr11 指令名称:绝对调用指令 指令代码:A10 A9 A8 10001 A7 A6 A5 A4 A3 A2 A1 A0 指令功能:构造目的地址,进行子程序调用。其方法是以指令提供的11位地址(al0~a0),取代PC的低11位,PC的高5位不变。操作内容: PC←(PC)+2SP←(SP)+1 (SP)←(PC)7~0 SP←(SP)+1 (SP)←(PC)15~8 PC10~0←addrl0~0 字节数: 2 机器周期:2 使用说明:由于指令只给出子程序入口地址的低11位,因此调用范围是2KB。 2、ADD A,Rn 指令名称:寄存器加法指令指令代码:28H~2FH 指令功能:累加器内容与寄存器内容相加 操作内容:A←(A)+(Rn),n=0~7 字节数: 1 机器周期;1 影响标志位:C,AC,OV 3、ADD A,direct 指令名称:直接寻址加法指令指令代码:25H 指令功能:累加器内容与内部RAM单元或专用寄存器内容相加操作内容:A←(A)+(direct) 字节数: 2 机器周期:1 影响标志位:C,AC,OV 4、ADD A,@Ri ’ 指令名称:间接寻址加法指令指令代码:26H~27H 指令功能:累加器内容与内部RAM低128单元内容相加 操作内容:A←(A)+((Ri)),i=0,1 字节数: 1 机器周期:1 影响标志位:C,AC,OV 5、ADD A,#data 指令名称:立即数加法指令指令代码:24H 指令功能:累加器内容与立即数相加 操作内容:A←(A)+data 字节数: 2 机器周期:1 影响标志位:C,AC,OV 6、ADDC A,Rn 指令名称:寄存器带进位加法指令指令代码:38H~3FH 指令功能:累加器内容、寄存器内容和进位位相加 操作内容:A←(A)+(Rn)+(C),n=0~7 影响标志位:C,AC,OV 7、ADDC A,direct 指令名称:直接寻址带进位加法指令指令代码:35H 指令功能:累加器内容、内部RAM低128单元或专用寄存器内容与进位位加 操作内容:A←(A)+(direct)+(C) 字节数: 2 机器周期:1 影响标志位:C,AC,OV 8、ADDC A,@Ri 指令名称:间接寻址带进位加法指令指令代码:36H~37H 指令功能:累加器内容, 内部RAM低128单元内容及进位位相加操作内容:A←(A)+((Ri))+(C),i=0,1 字节数: 1 机器周期:1 影响标志位:C,AC,OV 9、ADDC A,#data 指令名称:立即数带进位加法指令指令代码:34H 指令功能:累加器内容、立即数及进位位相加 操作内容:A←(A)+data+(C) 字节数: 2 机器周期:1 影响标志位:C,AC,OV 10、AJMP addr11 指令名称:绝对转移指令 指令代码:A10 A9 A8 1 0 0 0 1 A7 A6 A5 A4 A3 A2 A1 A0 指令功能:构造目的地址,实现程序转移。其方法是以指令提供的11位地址,取代PC的低11位,.而PC的高5位保持不变。操作内容:PC←(PC)+2PCl0~0←addrll 字节数: 2 机器周期:2 使用说明:由于addrll的最小值是000H,最大值是7FFH,因此地址转移范围是2KB。 11、ANL A,Rn 指令名称:寄存器逻辑与指令指令代码:58H~5FH 指令功能:累加器内容逻辑与寄存器内容 操作内容:A←(A)∧(Rn),n=0~7 字节数: 1 机器周期:1 12、ANL A,direct 指令名称:直接寻址逻辑与指令指令代码:55H 指令功能:累加器内容逻辑与内部RAM低128单元或专用寄存器内容 操作内容:A←(A)

    EXCELVBA常用代码实战大全共393页word资料

    VBA常用技巧代码解析 yuanzhuping 1VBA VBAVBA VBA常用 常用常用 常用技巧 技巧技巧 技巧 目录 目录目录 目录 VBA VBAVBA VBA常用技巧 常用技巧常用技巧 常用技巧 ------------------------------------------------------------------------------------------------------- 1 第1章 Range(单元格)对象 -------------------------------------------------------------------- 10 技巧1 单元格的引用方法 ---------------------------------------------------------------------- 10 1-1 使用Range属性 ----------------------------------------------------------------------- 10 1-2 使用Cells属性 ------------------------------------------------------------------------ 11 1-3 使用快捷记号 -------------------------------------------------------------------------- 11 1-4 使用Offset属性 ----------------------------------------------------------------------- 12 1-5 使用Resize属性 ----------------------------------------------------------------------- 13 1-6 使用Union方法 ----------------------------------------------------------------------- 14 1-7 使用UsedRange属性 ---------------------------------------------------------------- 14 1-8 使用CurrentRegion属性 ------------------------------------------------------------ 15 技巧2 选定单元格区域的方法---------------------------------------------------------------- 15 2-1 使用Select方法 ----------------------------------------------------------------------- 15 2-2 使用Activate方法 -------------------------------------------------------------------- 16 2-3 使用Goto方法 ------------------------------------------------------------------------- 17 技巧3 获得指定行、列中的最后一个非空单元格 -------------------------------------- 17 技巧4 定位单元格 ------------------------------------------------------------------------------- 20

    C单片机指令集大全

    C单片机指令集大全 Document number【980KGB-6898YT-769T8CB-246UT-18GG08】

    格式功能简述字节数周期 一、数据传送类指令 MOVA,Rn寄存器送累加器11 MOVRn,A累加器送寄存器11 MOVA,@Ri内部RAM单元送累加器11 MOV@Ri,A累加器送内部RAM单元11 MOVA,#data立即数送累加器21 MOVA,direct直接寻址单元送累加器21 MOVdirect,A累加器送直接寻址单元21 MOVRn,#data立即数送寄存器21 MOVdirect,#data立即数送直接寻址单元32 MOV@Ri,#data立即数送内部RAM单元21 MOVdirect,Rn寄存器送直接寻址单元22 MOVRn,direct直接寻址单元送寄存器22 MOVdirect,@Ri内部RAM单元送直接寻址单元22 MOV@Ri,direct直接寻址单元送内部RAM单元22 MOVdirect2,direct1直接寻址单元送直接寻址单元32 MOVDPTR,#data1616位立即数送数据指针32 MOVXA,@Ri外部RAM单元送累加器(8位地址)12 MOVX@Ri,A累加器送外部RAM单元(8位地址)12 MOVXA,@DPTR外部RAM单元送累加器(16位地址)12 MOVX@DPTR,A累加器送外部RAM单元(16位地址)12

    MOVCA,@A+DPTR查表数据送累加器(DPTR为基址)12 MOVCA,@A+PC查表数据送累加器(PC为基址)12 XCHA,Rn累加器与寄存器交换11 XCHA,@Ri累加器与内部RAM单元交换11 XCHDA,direct累加器与直接寻址单元交换21 XCHDA,@Ri累加器与内部RAM单元低4位交换11 SWAPA累加器高4位与低4位交换11 POPdirect栈顶弹出指令直接寻址单元22 PUSHdirect直接寻址单元压入栈顶22 二、算术运算类指令 ADDA,Rn累加器加寄存器11 ADDA,@Ri累加器加内部RAM单元11 ADDA,direct累加器加直接寻址单元21 ADDA,#data累加器加立即数21 ADDCA,Rn累加器加寄存器和进位标志11 ADDCA,@Ri累加器加内部RAM单元和进位标志11 ADDCA,#data累加器加立即数和进位标志21 ADDCA,direct累加器加直接寻址单元和进位标志21 INCA累加器加111 INCRn寄存器加111 INCdirect直接寻址单元加121 INC@Ri内部RAM单元加111 INCDPTR数据指针加112

    Excel VBA编程的常用代码

    用过VB的人都应该知道如何声明变量,在VBA中声明变量和VB中是完全一样的! 使用Dim语句 Dim a as integer '声明a为整型变量 Dim a '声明a为变体变量 Dim a as string '声明a为字符串变量 Dim a as currency ,b as currency ,c as currency '声明a,b,c为货币变量 ...... 声明变量可以是:Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal(当前不支持)、Date、String(只限变长字符串)、String * length(定长字符串)、Object、Variant、用户定义类型或对象类型。 强制声明变量 Option Explicit 说明:该语句必在任何过程之前出现在模块中。 声明常数 用来代替文字值。 Const ' 常数的默认状态是 Private。 Const My = 456 ' 声明 Public 常数。 Public Const MyString = "HELP" ' 声明 Private Integer 常数。 Private Const MyInt As Integer = 5 ' 在同一行里声明多个常数。 Const MyStr = "Hello", MyDouble As Double = 3.4567 选择当前单元格所在区域 在EXCEL97中,有一个十分好的功能,他就是把鼠标放置在一个有效数据单元格中,执行该段代码,你就

    可以将连在一起的一片数据全部选中。只要将该段代码加入到你的模块中。 Sub My_Select Selection.CurrentRegion.Select End sub 返回当前单元格中数据删除前后空格后的值 sub my_trim msgbox Trim(ActiveCell.Value) end sub 单元格位移 sub my_offset ActiveCell.Offset(0, 1).Select'当前单元格向左移动一格 ActiveCell.Offset(0, -1).Select'当前单元格向右移动一格 ActiveCell.Offset(1 , 0).Select'当前单元格向下移动一格 ActiveCell.Offset(-1 , 0).Select'当前单元格向上移动一格 end sub 如果上述程序产生错误那是因为单元格不能移动,为了解除上述错误,我们可以往 sub my_offset 之下加一段代码 on error resume next 注意以下代码都不再添加sub “代码名称” 和end sub请自己添加! 给当前单元格赋值 ActiveCell.Value = "你好!!!" 给指定单元格赋值 例如:A1单元格内容设为"HELLO" Range("a1").value="hello" 又如:你现在的工作簿在sheet1上,你要往sheet2的A1单元格中插入"HELLO" 1. sheets("sheet2").select

    网页html代码大全

    常用HTML代码解释 一、文字 1.标题文字.......... #=1~6;h1为最大字,h6为最小字 2.字体变化.......... 【1】字体大小.......... #=1~7;数字愈大字也愈大 【2】指定字型.......... 【3】文字颜色.......... rr:表红色(red)色码 gg:表绿色(green)色码 bb:表蓝色(blue)色码 rrggbb也可用6位颜色代码数字 3.显示小字体.......... 4.显示大字体.......... 5.粗体字.......... 6.斜体字.......... 7.打字机字体.......... 8.底线.......... 9.删除线.......... 10.下标字.......... 11.上标字.......... 12.文字闪烁效果.......... 13.换行(也称回车)
    14.分段 15.文字的对齐方向

    #号可为left:表向左对齐(预设值)center:表向中对齐right:表向右对齐P.S.

    之后的文字都会以所设的对齐方式显示,直到出现另一个

    改变其对齐方向,遇到


    标签时会自动设回预设的向左对齐。