EXCEL 常用的宏代码大全

EXCEL 常用的宏代码大全
EXCEL 常用的宏代码大全

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 https://www.360docs.net/doc/3b11858057.html, <> https://www.360docs.net/doc/3b11858057.html, Then

w.Close SaveChanges:=True

End If

Next w

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

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

MsgBox "The name of the active sheet is " & https://www.360docs.net/doc/3b11858057.html,

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

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 https://www.360docs.net/doc/3b11858057.html,

Next ws

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

Set NewSheet = Worksheets.Add

https://www.360docs.net/doc/3b11858057.html, = "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)

https://www.360docs.net/doc/3b11858057.html, = "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

本示例对所有工作簿都关闭滚动条?

Application.DisplayScrollBars = False

如果具有密码保护的工作簿的文件属性没有加密,则本示例设置指定工作簿的密码加密选项。

'Sub SetPasswordOptions()

With ActiveWorkbook

If .PasswordEncryptionProvider <> "Microsoft RSA SChannel Cryptographic Provider" Then

.SetPasswordEncryptionOptions _

PasswordEncryptionProvider:="Microsoft RSA SChannel Cryptographic Provider", _

PasswordEncryptionAlgorithm:="RC4", _ PasswordEncryptionKeyLength:=56, _ PasswordEncryptionFileProperties:=True

End If

End With

End Sub

在本示例中,如果活动工作簿不能进行写保护,那么Microsoft Excel 设置字符串密码以作为活动工作簿的写密码。

'Sub UseWritePassword()

Dim strPassword As String

strPassword = "secret"

' Set password to a string if allowed.

If ActiveWorkbook.WriteReserved = False Then

ActiveWorkbook.WritePassword = strPassword

End If

End Sub

在本示例中,Microsoft Excel 打开名为Password.xls 的工作簿,设置它的密码,然后关闭该工作簿。本示例假定名为Password.xls 的文件位于C:\ 驱动器上。

'Sub UsePassword()

Dim wkbOne As Workbook

Set wkbOne = Application.Workbooks.Open("C:\Password.xls") wkbOne.Password = "secret"

wkbOne.Close

'注意Password 属性可读并返回―********‖。

End Sub

本示例将Book1.xls 的当前窗口更改为显示公式。

Workbooks("BOOK1.XLS").Worksheets("Sheet1").Activate ActiveWindow.DisplayFormulas = True

'本示例接受活动工作簿中的所有更改?

ActiveWorkbook.AcceptAllChanges

本示例显示活动工作簿的路径和名称

Sub UseCanonical()

MsgBox '消息框

[b7] = ActiveWorkbook.FullName '当前工作簿

[b8] = ActiveWorkbook.FullNameURLEncoded '活动工作簿

End Sub

本示例显示Microsoft Excel 启动文件夹的完整路径。

MsgBox Application.StartupPath

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

For Each ws In Worksheets

MsgBox https://www.360docs.net/doc/3b11858057.html,

Next ws

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

For Each w In Workbooks

If https://www.360docs.net/doc/3b11858057.html, <> https://www.360docs.net/doc/3b11858057.html, Then

w.Close savechanges:=True

End If

Next w

Activate 事件

激活一个工作簿、工作表、图表或嵌入图表时产生此事件。

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

Private Sub Worksheet_Activate()

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

End Sub

Calculate 事件

对于Worksheet 对象,在对工作表进行重新计算之后产生此事件

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

Private Sub Worksheet_Calculate()

Columns("A:F").AutoFit

End Sub

BeforeDoubleClick 事件

应用于Worksheet 对象的Activate 方法。

当双击某工作表时产生此事件,此事件先于默认的双击操作。

Private Sub expression_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

expression 引用在类模块中带有事件声明的Worksheet 类型对象的变量。

Target 必需。双击发生时最靠近鼠标指针的单元格。

Cancel 可选。当事件发生时为False。如果事件过程将该参数设为True,则该过程执行完之后将不进行默认的双击操作。

BeforeRightClick 事件

应用于Worksheet 对象的Activate 方法。

当用鼠标右键单击某工作表时产生此事件,此事件先于默认的右键单击操作。

Private Sub expression_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

expression 引用在类模块中带有事件声明的Worksheet 类型对象的变量。

Target 必需。右键单击发生时最靠近鼠标指针的单元格。

Cancel 可选。当事件发生时为False。如果该事件过程将本参数设为True,则该过程执行结束之后不进行默认的右键单击操作。

Change 事件

当用户更改工作表中的单元格,或外部链接引起单元格的更改时产生此事件。

Private Sub Worksheet_Change(ByVal Target As Range)

Target 更改的区域。可以是多个单元格。

说明

重新计算引起的单元格更改不触发本事件。可使用Calculate 事件俘获工作表重新计算操作。

本示例将更改的单元格的颜色设为蓝色。

Private Sub Worksheet_Change(ByVal Target as Range)

Target.Font.ColorIndex = 5

End Sub

Deactivate 事件

图表、工作表或工作簿从活动状态转为非活动状态时产生此事件。Private Sub object_Deactivate()

object Chart、Workbook 或者Worksheet。有关对Chart 对象使用事件的详细信息,请参阅Chart 对象事件的用法。

本示例当工作簿转为非活动状态时,对所有打开的窗口进行排列。Private Sub Workbook_Deactivate()

Application.Windows.Arrange xlArrangeStyleTiled

End Sub

FollowHyperlink 事件

当单击工作表上的任意超链接时,发生此事件。对于应用程序级或工作簿级的事件,请参阅SheetFollowHyperlink 事件。

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) Target Hyperlink 类型,必需。一个代表超链接目标位置的Hyperlink 对象。

本示例对在当前活动工作簿中访问过的所有链接保留一个列表或历史记录。

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) With UserForm1

.ListBox1.AddItem Target.Address

.Show

End With

End Sub

PivotTableUpdate 事件

发生在工作簿中的数据透视表更新之后。

Private Sub expression_PivotTableUpdate(ByVal Target As PivotTable) expression 引用在类模块中带有事件声明的Worksheet 类型对象的变量。

Target 必需。选定的数据透视表。

本示例显示一则消息,说明数据透视表已经更新。本示例假定您已在类模块中声明了带有事件的Worksheet 类型的对象。

Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable) MsgBox "The PivotTable connection has been updated."

End Sub

SelectionChange 事件

当工作表上的选定区域发生改变时,将产生本事件。

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)

Target 新选定的区域。

本示例滚动工作簿窗口,直至选定区域位于窗口的左上角。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

With ActiveWindow

.ScrollRow = Target.Row

.ScrollColumn = Target.Column

End With

End Sub

本示例显示活动工作簿中工作表sheet1 上单元格A1 中的值。MsgBox Worksheets("Sheet1").Range("A1").Value

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

For Each ws In Worksheets

MsgBox https://www.360docs.net/doc/3b11858057.html,

Next ws

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

Set newSheet = Worksheets.Add

https://www.360docs.net/doc/3b11858057.html, = "current Budget"

本示例关闭工作簿Book1.xls,但不提示用户保存所作更改。Book1.xls 中的所有更改都不会保存。

Application.DisplayAlerts = False

Workbooks("BOOK1.XLS").Close

Application.DisplayAlerts = True

本示例设置保存文件时显示提示,要求用户输入汇总信息。Application.PromptForSummaryInfo = True

本示例显示Microsoft Excel 的完整路径。

Private Sub aa()

MsgBox "The path is " & Application.Path

End Sub

示例显示每一个可用加载宏的路径及文件名。

For Each a In AddIns

MsgBox a.FullName

Next a

ChDir 语句

改变当前的目录或文件夹。

ChDir path

在Power Macintosh 中,默认驱动器总是改为在path 语句中指定的驱动器。完整路径指定由卷标名开始,相对路径由冒号(:) 开始. ChDir 可以辨认路径中指定的别名:

ChDir "MacDrive:Tmp" ' 在Macintosh 中

本示例显示当前路径分隔符。

MsgBox "The path separator character is " & _

Application.PathSeparator

Move 方法

将一个指定的文件或文件夹从一个地方移动到另一个地方。

语法

object.Move destination

Move 方法语法有如下几部分:

部分描述

object 必需的。始终是一个File 或Folder 对象的名字。destination 必需的。文件或文件夹要移动到的目标。不允许有通配符。CreateFolder 方法

创建一个文件夹。

语法

object.CreateFolder(foldername)

reateFolder 方法有如下几部分:

部分描述

object 必需的。始终是一个FileSystemObject 的名字。

foldername 必需的。字符串表达式,它标识创建的文件夹。

本示例使用MkDir 语句来创建目录或文件夹。如果没有指定驱动器,新目录或文件夹将会建在当前驱动器中。

MkDir "MYDIR" ' 建立新的目录或文件夹。

Name 语句示例

本示例使用Name 语句来更改文件的名称。示例中假设所有使用到的目录或文件夹都已存在。在Macintosh 中,默认驱动器名称是―HD‖ 并且路径部分由冒号取代反斜线隔开。

Dim OldName, NewName

OldName = "OLDFILE": NewName = "NEWFILE" ' 定义文件名。Name OldName As NewName ' 更改文件名。

OldName = "C:\MYDIR\OLDFILE": NewName = "C:\YOURDIR\NEWFILE"

Name OldName As NewName ' 更改文件名,并移动文件。

本示例显示当前默认文件路径。

MsgBox "The current default file path is " & _

Application.DefaultFilePath

本示例设置替换启动文件夹。

Application.AltStartupPath = "C:\EXCEL\MACROS"

FolderExists 方法

如果指定的文件夹存在返回True,不存在返回False。

语法

object.FolderExists(folderspec)

本示例在单元格中启用编辑。

Application.EditDirectlyInCell = True

VBA 入门课程https://www.360docs.net/doc/3b11858057.html,/excel/topic.htm

Advanced Office 2000 Password Recovery 破解VBA的程序

我学VBA时的两本书!《excle2000vba开发实例指南》晶辰工作室《excle2002函数应用秘笈》中国铁路出版社

程序说明:

几种用VBA在单元格输入数据的方法:

Public Sub Writes()

1-- 2 方法,最简单在"[ ]" 中输入单元格名称。

1 [A1] = 100 '在A1 单元格输入100。

2 [A2:A4] = 10 '在A2:A4 单元格输入10。

3-- 4 方法,采用Range(" ")," " 中输入单元格名称。

3 Range("B1") = 200 '在B1 单元格输入200。

4 Range("C1:C3") = 300 '在C1:C3 单元格输入300。

5-- 6 方法,采用Cells(Row,Column),Row是单元格行数,Column是单元格栏数。

5 Cells(1, 4) = 400 '在D1 单元格输入400。

6 Range(Cells(1, 5), Cells(5, 5)) = 50 '在E1:E 5单元格输入50。

End Sub

你点选任何单元格,按Selection 按钮,則则所点选的单元格均会被输入文字"Test"。

Public Sub Selection1()

Selection.Value = "Test" '在任何你点选的单元格输入文字"Test"。

End Sub

VBALesson2 程序说明:

几种如何把别的工作表Sheet4 数据,读到这个工作表的方法:在被读取的单元格前加上工作表名称Sheet4。

Public Sub Writes()

1-- 2 方法,最简单在被读取的"[ ]" 前加上被读取的工作表名称

Sheet4。

1 [A1] = Sheet4.[A1] '把Sheet4 A1 单元格的数据,读到A1单元格。

2 [A2:A4] = Sheet4.[B1] ''把Shee4 工作表单元格B1 数据,读到A2:A4 单元格。

3-- 4 方法,在被读取的工作表Range(" ")的Range 前加上被读取的工作表名称Sheet4。

3 Range("B1") = Sheet4.Range("B1") ''把Shee4工作表单元格B1 数据,读到B1 单元格。

4 Range("C1:C3") = Sheet4.Range("C1") '把Shee4 工作表单元格C1 数据,读到C1:C3 单元格。

5-- 6 方法,在被读取的工作表Cells(Row,Column),Cells 前加上被读取工作表名称Sheet4。

5 Cells(1, 4) = Sheet4.Cells(1, 4) '把Shee4 工作表单元格D1 数据,读到D1 单元格。

6 Range(Cells(1, 5), Cells(5, 5)) = Sheet4.Cells(1, 5) '把Shee4 工作表单元格E1 数据,读到E1:E 5单元格。

End Sub

你点选任何单元格,按Selection 按钮,则所点选的单元格均会被输入

Shee4 工作表单元格F1 数据。

Public Sub Selection1()

Selection.Value = Sheet4.[F1] '把Shee4 工作表单元格F1 数据,读到任何你点选的单元格。

End Sub

VBALesson3 程序说明:

如何利用Worksheet_SelectionChange 输入数据的方法。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Target = 100

End Sub

Target 指的是你鼠标所选的单元格,Worksheet_SelectionChange() 事件的参数。

可以是一个也可以是好几个单元格。

Range 是Excel 特有的变量形态,叫范围。

Target As Rang 是把Target 这个参数设定为Range 变量形态。Target = 100 是把你点选的单元格输入数字100。

VBALesson4 程序说明:

如何利用Worksheet_SelectionChange 在限定的单元格输入数据的方法。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Row >= 2 And Target.Column = 2 Then

Target = 100

End If

End Sub

If ... Then ... End If 这是我们学的这一个逻辑判断语句。

Target.Row >= 2,指的是鼠标选定的单元格的行大于或等于2。Target.Column = 2 ,指的是鼠标选定的单元格的栏等于2。

If Target.Row >= 2 And Target.Column = 2 Then 指的是只有在Target.Row >= 2及Target.Column = 2二个条件成立时。

就是(Target.Row >= 2) 为True及(Target.Column = 2)为True时,才执行下面的程序Target=100,

也就是B 栏第二行及以下行用鼠标被点选时,才会被输入100,其它单元格则不被输入数据。

VBALesson5 程序说明:

比较Worksheet_SelectionChange() 与用按钮CommandButton1_Click() 来执行程序二者的方法与写法有何不同。

Worksheet_SelectionChange()事件

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Row >= 2 And Target.Column = 2 Then

Target = 100

End If

End Sub

按鈕CommandButton1_Click()

Private Sub CommandButton1_Click()

If ActiveCell.Row >= 2 And ActiveCell.Column >= 3 Then

ActiveCell = 100

End If

End Sub

二者执行方法最大的地方,在于Worksheet_SelectionChange() 是自动的,你不用了解他是怎么完成工作的。

按钮CommandButton1_Click() 是人工的,比SelectionChange()多一道手续,就是要去按那接钮,程序才会执行。

SelectionChange() 有一个参数Target 可用;CommandButton1_Click ()没有。

所以我们要用ActiveCell 内定函数来取代Target,ActiveCell 与Target 最大的不同点他只能指定一个单元格。

就是你选取多个单元格也只有最上面的单元格会加上数据;用Selection 取代ActiveCell,用法就跟Target 一样了。

VBALesson 6 程序说明:

完整的If...Then ┅End 逻辑判断式。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Row >= 2 And Target.Column = 2 Then

Target = 200

ElseIf Target.Row >= 2 And Target.Column = 3 Then

Target = 300

ElseIf Target.Row >= 2 And Target.Column = 2 Then

Target = 400

Else

Target = 500

End If

End Sub

这是个完整的If 逻辑判断式,意思是说,假如If 後的判断式条件成立的话,就执行第二条程序,否则假如ElseIf 後的判断式条件成立的话,就执行第四条程序,否则假如另一个ElseIf 後的判断式条件成立的话,就执行第六条程序。

Else 的意思是说,假如以上条件都不成立的话,就执行第八条程序。他的执行方式是假如IF 的条件成立的话,就不执行其它ElseIf 及Else 的逻辑判断式,假如If 後的条件不成立的话才会执行ElseIf 或Else 逻辑判断式。第二个ElseIf後的条件因为与IF 後的条件一样,所以这个判断式後面的Target=400 将是永远无法执行到的程序。VBALesson 7 程序说明∶我们为什麽要用变数。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim i , j As Integer

Dim k As Range

i = Target.Row

j = Target.Column

Set k = Target

If i >= 2 And j = 2 Then

k = 200

ElseIf i >= 2 And j = 3 Then

k = 300

ElseIf i >= 2 And j = 4 Then

k = 400

Else

k = 500

End If

End Sub

跟VBALesson 6比较,程序是不是明朗多了,在前课重复的用Target.Row,Target.Column及Target来写程序是不是有一点烦。用变量的第一个好处大家马上感觉得出来,就是可以简化程序。

使用变量前,你得先宣告变量。宣告变量的方法是在"Dim " 后面写上变量" i " As 后面接上变量的形态"Integer"。

Dim i , j As Integer 就是宣告i 与j 为整数变量,这是同时宣告二个变量i 与j 所以要在二个变量间加个" , "号。

Dim k As Range 是宣告k 为范围资料形态,Range这是Excel 特有的资料形态。

i = Target.Row是把当前单元格的行数,指定给变量i。

j = Target.Column 是把当前单元格的栏数,指定给变量j。

Set k = Target 是把当前的单元格,指定给变量k。

用像i 与j 这样简单的变量,在程序的前面你可能还记得i 或j 代表着什厶。程序写长了,你可能忘记i 或j 代表着什厶。所以最好的方法是用比较有意义的代号,来为变量命名如iRow 或iCol 来取代i 及j 。

VBALesson 8 程序说明∶体会一下Worksheet_Change()事件。

Private Sub Worksheet_Change(ByVal Target As Range)

Dim iRow, iCol As Integer

iRow = Target.Row

Excel宏功能简单应用介绍

OFFice几个出色招数 Word独门绝招: 一、输入三个“=”,回车,得到一条双直线; 二、输入三个“~”,回车,得到一条波浪线; 三、输入三个“*”或“-”或“#”,回车,惊喜多多; Powerpoint出色过招: Q:如果已经word写好一份报告,并且要根据报告的内容做幻灯片,怎么直接把 word文档的标题发送到powerPoint? A:打开word文档,从“文件”菜单单击“发送”命令,再选择发送到ppt。ppt 会自动启动,并且根据每个word文档的一级标题建立一张相同标题的幻灯片,其下的二级标题也会被自动添加到幻灯片。 Excel宏功能简单应用介绍 所谓宏,就是一组指令集,通过执行类似批处理的一组命令,来完成某种功能。Microsoft Office的组件都可以支持宏(Macro)的操作,而Office的宏是指使用VB Script指令集(VB编程语言的子集,可以使用VB的常用语句)编写的针对Office组件的小程序。利用宏,我们可以完成很多程序原本并不支持的特殊应用,比如完成某种特殊的数据计算,或者文档的特殊格式排版等等。下面,就让我们举个简单的例子,看看宏在Excel中如何应用。 有这样一个Excel表格,工作表Sheet1中的第2行的B列开始至D列的连续单元格中是一组共3个数据,第A列的第3行开始至第6行的连续单元格中是一组共4个日期,要编写一段宏来完成这样的工作:将Sheet1第2行的数据由左至右依次纵向复制到Sheet2的B列(从B2开始)中,然后将这组复制完的3个数据所在行的A列都填入Sheet1的A3单元格里面的日期,完成后重复之前的操作,将Sheet1第2行的数据再次复制到Sheet2的B列,这次是从上次复制的B列数据下面的空白单元格,也就是B5开始,然后再在这次复制的3个数据的左侧A列填入Sheet1的A4单元格的日期,这样反复循环,直到Sheet1的A列的所有日期都出现在了Sheet2的A列里面,也就是Sheet1的第2行数据在Sheet2的B列里面被复制了4次为止。 编写宏只要有一点点简单的VB编程知识就可以了,并不一定需要很高深的编程技巧,很多时候我们需要的只是一些重复的操作,我们可以通过宏的录制功

EXCEL使用VBA宏生成SQL语句

有时候需要将Excel文件中的数据导入到数据库中,常用的做法是使用程序读取Excel,然后存入数据库;这里换一个方法,用Excel生成SQL语句,然后用这些SQL语句来更新数据库。 本文主要说明Excel如何使用VB宏构造需要的SQL语句,并生成文件。 2、如何添加按钮: 依次打开:视图–工具栏–控件工具箱,选择“命令按钮”,自己画一个就行了; 依次打开:右键–属性,可以修改名称、样式等。 具体操作可以上网找找。 3、如何使用VB宏: 依次打开:工具–宏–安全性,看看你的Excel是否允许使用“宏”。 然后打开:工具–宏–Visual Basic编辑器,双击左侧的“Sheet1”,然后在右侧的代码区域粘贴如下代码: '最大行数 Const MAX_NUM_ROW=5000 '导出文件路径所在单元格 Const PATH_OUTPUT_ROW=3 Const PATH_OUTPUT_COL=3 '定义列常量 Const NAME_COL=1 Const GENDER_COL=2 Const PHONE_COL=3 Const EMAIL_COL=4 '读取数据开始行数 Const START_ROW=5 '定义数据实体类 Private Type Tmplt NAME As String GENDER As String PHONE As String EMAIL As String End Type '行数变量 Dim noOfTmplts As Integer '数据实体类数组 Dim TmpltArray(MAX_NUM_ROW)As Tmplt '点击按钮触发事件 Private Sub CommandButton1_Click() generateSQL End Sub '生成SQL Private Sub generateSQL() makedir initData writeToFile

一些实用的excel宏

Excel宏教程 一、选中单个单元格 Range(“<单元格地址>“).Select 例:Range("C9").Select …选中“C9”单元格 二、选中多个单元格 Range(“<单元格地址>:<单元格地址>[,<单元格地址>……]”).Select 例:Range(“A1:B2”).Select…选中“A1”、“A2”、“B1”、“B2”四个连续的单元格Range(“12:12”).Select…选中第12行 Range(“B:B”).Select…选中第B列 Range(“A1:A2,B7,2:2”).Select…选中“A1”、“A2”、“B7”五个不连续的单元格和第二行Cells.Select …选中当前SHEET中的所有单元格 Rows("<行地址>:<行地址>").Select …选中整行 Columns("<列地址>:<列地址>").Select …选中整列 例:Rows(“2:2”). Select…选中第2行 Rows(“2:5”). Select…选中2到5行 Columns("A:A").Select …选中A列 Columns("E:B").Select …选中E到B列

三、设置活动单元格 Range("<单元格地址>").Activate 注:设置活动单元格与选中单元格类似,不同之处就是 后者在选中指定的单元格之前会将在此前已被选中的单元格取消掉。 前者在设置之前不会取消已选中的单元格, 如果此时操作的单元格不是被选中的单元格,这时他实现的功能与选一个单元格相同。 四、给活动的单元格赋值 ActiveCell.FormulaR1C1 = <值> 例:Range("A1").Select ActiveCell.FormulaR1C1 = "Name" Range("B1").Select ActiveCell.FormulaR1C1 = "Age" Range("A2:B3").Select Range("A2").Activate ActiveCell.FormulaR1C1 = " BUG" Range("B2").Activate ActiveCell.FormulaR1C1 = "12" Range("A3").Activate ActiveCell.FormulaR1C1 = "Archer" Range("B3").Activate ActiveCell.FormulaR1C1 = "37"

Excel宏的用法详解

宏的用法详解 1.1 VBA是什么 直到90年代早期,使应用程序自动化还是充满挑战性的领域.对每个需要自动化的应用程序,人们不得不学习一种不同的自动化语言.例如:可以用excel的宏语言来使excel自动化,使用word BASIC使word自动化,等等.微软决定让它开发出来的应用程序共享一种通用的自动化语言--------Visual Basic For Application(VBA),可以认为VBA是非常流行的应用程序开发语言V ASUAL 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宏功能简单应用介绍 所谓宏,就是一组指令集,通过执行类似批处理的一组命令,来完成某种功能。MicrosoftOffice的组件都可以支持宏(Macro)的操作,而Office的宏是指使用VB Script指令集(VB编程语言的子集,可以使用VB的常用语句)编写的针对Office组件的小程序。利用宏,我们可以完成很多程序原本并不支持的特殊应用,比如完成某种特殊的数据计算,或者文档的特殊格式排版等等。下面,就让我们举个简单的例子,看看宏在Excel中如何应用。 有这样一个Excel表格,工作表Sheet1中的第2行的B列开始至D列的连续单元格中是一组共3个数据,第A列的第3行开始至第6行的连续单元格中是一组共4个日期,要编写一段宏来完成这样的工作:将Sheet1第2行的数据由左至右依次纵向复制到Sheet2的B列(从B2开始)中,然后将这组复制完的3个数据所在行的A列都填入Sheet1的A3单元格里面的日期,完成后重复之前的操作,将Sheet1第2行的数据再次复制到Sheet2的B列,这次是从上次复制的B列数据下面的空白单元格,也就是B5开始,然后再在这次复制的3个数据的左侧A列填入Sheet1的A4单元格的日期,这样反复循环,直到She et1的A列的所有日期都出现在了Sheet2的A列里面,也就是Sheet1的第2行数据在 Sheet2的B列里面被复制了4次为止。 编写宏只要有一点点简单的VB编程知识就可以了,并不一定需要很高深的编程技巧,很多时候我们需要的只是一些重复的操作,我们可以通过宏的录制功能来录制一次需要的操作过程,然后再对已经录制的宏进行简单的修改,就能得到所需要的宏了。 对于上面这个事例,实际上只是简单的复制操作,所以甚至连录制的工作都可以省掉了。因为所需要的操作是一个循环的过程,所以我们可以使用一个循环语句来编写程序,这样只要写出一个完成的复制过程,一次循环就可以达到我们的目的了。循环判断的依据就是是否Sheet1的A列所有日期都复制过了,因为数据都是连续排列的,艘以我们可以把Sheet1的A列某个单元格是否有数据作为进入循环的条件,依次复制日期,直到A7这个没有数据的空单元格,循环结束,我们的工作也就完成了。至于循环里面的内容,我们同样再嵌套一个循环,只不过这次是判断第2行的数据是否全都复制完成了,在这个循环里面自然就是单元格数据和日期的复制了。 Sub Macro1() Dim st1y Dim st2y Dim st1x

办公高手EXCEL常用宏命令

办公高手.EXCEL常用宏命令 1 设置打开时弹出对话框的命令举例: Sub AUTO_OPEN() "输入打开工作表时要运行的代码或宏" End Bub 2 设置关闭时弹出对话框的命令举例: Sub AUTO_CLOSE() "输入关闭工作表时要运行的代码或宏" End Bub 3 设置提示框举例: MsgBox prompt:="温馨提示:您要打开的工作表有保护!", Buttons:=vbOKOnly, Title:="谷子提示 " i = MsgBox("系统提供不同服务,是否浏览资费信息?", vbYesNoCancel, "谷子提示:") If i = vbYes Then MsgBox "资费信息:********", , "谷子提示" Else "输入要运行的代码" End If 4、提示框内容过长,换行vbNewLine: MsgBox "您本次访问系统的时间是:" & Date & " " & Time & vbNewLine & "系统离到期日还剩余:" _ & DateDiff("d", Now, "2010-12-31") & " 天!" & vbNewLine & "是否查阅到期日说明?", vbYesNoCancel, "时间和到期日提示:" 5 提示提示系统的日期和时间: MsgBox "系统当前日期和时间:" & Date & " " & Time, , "时间提示" DateDiff("d", Now, "2010-10-31") & " 天!" ‘提示离指定日期的剩余天数 6 系统时间判断命令: Sub 判断时间测试() If Date > "2010-05-20" Then MsgBox "对不起,测试期间已经结束", , "谷子提示" Else Sheets("首页").Select '或其他命令 End If End Sub 7 禁止保存或另存的命令: Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) MsgBox ("禁止保存") Cancel = True '或thisworkbook.saved=true End Sub 8 保护工作表与撤销保护 Sheet2.Protect Password:="123456", DrawingObjects:=True, Contents:=True, Scenarios:=True '保护工作表SHEET2 Sheet2.Unprotect ("123456") '解除保 护 9 保护工作簿与撤销保护 ActiveWorkbook.Protect Structure:=True, Windows:=False, Password:="123" ActiveWorkbook.Unprotect Password:="123"

excel的宏教程免费下载

Microsoft excel是一款功能非常强大的电子表格软件。它可以轻松地完成数据的各类数学运算,并用各种二维或三维图形形象地表示出来,从而大大简化了数据的处理工作。但若仅利用excel的常用功能来处理较复杂的数据,可能仍需进行大量的人工操作。但excel的强大远远超过人们的想象--宏的引入使其具有了无限的扩展性,因而可以很好地解决复杂数据的处理问题。 随着支持Windows的应用程序的不断增多和功能的不断增强,越来越多的程序增加了宏处理来方便用户的自由扩展。但初期各应用程序所采用的宏语言并不统一,这样用户每使用一种应用程序时都得重新学习一种宏语言。为了统一各种应用程序下的宏,Microsoft推出了VBA(Visual Basic for Applications)语言。 VBA是从流行的Visual Basic编程语言中派生出来的一种面向应用程序的语言,它适用于各种Windows应用程序,可以解决各应用程序的宏语言不统一的问题。除此之外,使用 VBA语言还有如下优点:1、VBA是一种通用程序语言,通过它不仅可以共享Microsoft相关的各种软件(如excel、 word、access)……,而且随着其它的一些软件(如大名鼎鼎的AutoCAD2000)等对VBA的支持,这些软件也已进入到了VBA的控制范围;2、可以将用VBA编写的程序复制到Visual Basic中调试并运行,从而实现用Visual Basic来控制有关的应用程序;3、VBA 提供的大量内部函数大大简化了用户的操作。 对于而今的宏,不仅语言统一规范,而且其功能也已非常强大。但在大多数介绍excel的"傻瓜书"、"指南"、"入门与提高"等参考书中往往略过不提,或浅浅带

EXCEL如何使用宏

在介绍学习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

excel常用宏

1.拆分单元格赋值 Sub 拆分填充() Dim x As Range For Each x In https://www.360docs.net/doc/3b11858057.html,edRange.Cells If x.MergeCells Then x.Select x.UnMerge Selection.Value = x.Value End If Next x End Sub 2.E xcel 宏按列拆分多个excel Sub Macro1() Dim wb As Workbook, arr, rng As Range, d As Object, k, t, sh As Worksheet, i& Set rng = Range("A1:f1") Application.ScreenUpdating = False Application.DisplayAlerts = False arr = Range("a1:a" & Range("b" & Cells.Rows.Count).End(xlUp).Row) Set d = CreateObject("scripting.dictionary") For i = 2 To UBound(arr) If Not d.Exists(arr(i, 1)) Then Set d(arr(i, 1)) = Cells(i, 1).Resize(1, 13) Else Set d(arr(i, 1)) = Union(d(arr(i, 1)), Cells(i, 1).Resize(1, 13)) End If Next k = d.Keys t = d.Items For i = 0 To d.Count - 1 Set wb = Workbooks.Add(xlWBATWorksheet) With wb.Sheets(1) rng.Copy .[A1] t(i).Copy .[A2] End With wb.SaveAs Filename:=ThisWorkbook.Path & "\" & k(i) & ".xlsx" wb.Close Next

Excel宏的使用教程

Visual Basic for Applications(VBA)是Visual Basic的一种宏语言,主要能用来扩展Windows的应用程式功能,特别是Microsoft Office软件,其中包括Excel、PPT、Word、Outlook等。 使用Excel的VBA开发的Excel文档,在Excel中运行时需要开启Excel 的宏功能,否则此文档的VBA自动化功能将被完全屏蔽,文档的功能无法实现。 因此,在打开这些Excel程序文件之前,您需要先对您的Excel宏安全性进行设置(设置永久有效,在同一台电脑上无需再次设置) 在Excel2003版本中,可以依以下步骤操作: 1,在Excel的菜单栏上依次单击“工具”——“宏”——“安全性”,打开下图所示的“安全性”对话框, 2,在“安全级”选项卡中将宏的安全级别设置为“中”或“低”。其中推荐使用“中”级,这样的设置并不会降低您的安全性,您仍然对任意一个宏文件都拥有主动选择是否运行的权力。 在宏的安全性级别设置成功后,再次打开Excel程序文件时,会出现下图所示信息框,此时点击“启用宏”按钮即可使本程序正常运行: 在Excel2007/2010版本中,可以依以下步骤操作: 1,依次单击Excel的Office按钮(2010版本为“文件”按钮)——“Excel 选项”,打开下图所示的“Excel选项”选项卡,在左侧列表中选择“信任中心”,在右侧出现的窗口中点击“信任中心设置”按钮, 2,打开“信任中心”选项卡,在左侧选择“宏设置”,在右侧出现的窗口中选择“禁用所有宏,并发出通知”选项,单击确定完成。 在宏的安全性级别设置成功后,再次打开Excel程序文件时,在信息栏(编辑栏上方)会出现下图所示的警告信息,此时点击其中的“选项”按钮打开Offi ce安全选项对话框,在其中选择“启用此内容”选项并确定即可使本程序正常运行。

【免费下载】EXCEL宏的使用

目录 EXCEL宏的使用 (2) 一、选中单个单元格 (2) 二、选中多个单元格 (2) 三、设置活动单元格 (2) 四、给活动的单元格赋值 (3) 五、得到指定单元格中的值 (3) 六、插入单元格 (3) 七、设置字体属性 (4) 八、清空选中单元格里的内容 (5) 九、设置选中单元格的边线属性 (5) 十、删除选中的单元格 (6) 十一、设置单元格背景色及图案 (7) 十二、返回工作表中的行数 (8) 十三、得到当前EXCEL的文件名 (8) 十四、批注的操作 (8) 十五、剪切、复制、粘贴 (9) 十六、选择性粘贴 (10) 十七、改变列宽 (10) 1

EXCEL宏的使用 一、选中单个单元格 Range(“<单元格地址>“).Select 例:Range("C9").Select ‘选中“C9”单元格 二、选中多个单元格 Range(“<单元格地址>:<单元格地址>[,<单元格地址>……]”).Select 例:Range(“A1:B2”).Select ‘选中“A1”、“A2”、“B1”、“B2”四个连续的单元格 Range(“12:12”).Select ‘选中第12行 Range(“B:B”).Select ‘选中第B列 Range(“A1:A2,B7,2:2”).Select ‘选中“A1”、“A2”、“B7”五个不连续的单元格和第二行 Cells.Select ‘选中当前SHEET中的所有单元格 Rows("<行地址>:<行地址>").Select ‘选中整行 Columns("<列地址>:<列地址>").Select ‘选中整列 例:Rows(“2:2”). Select ‘选中第2行 Rows(“2:5”). Select ‘选中2到5行 Columns("A:A").Select ‘选中A列 Columns("E:B").Select ‘选中E到B列 三、设置活动单元格 Range("<单元格地址>").Activate 注:设置活动单元格与选中单元格类似,不同之处就是 后者在选中指定的单元格之前会将在此前已被选中的单元格取消掉。 前者在设置之前不会取消已选中的单元格,如果此时操作的单元格不是被选中的单元格,这时他实现的功能与选一个单元格相同。 2

Excel常见宏命令

清除剪贴板 Sub清除剪贴板() Application.CutCopyMode=False https://www.360docs.net/doc/3b11858057.html,mandBars("Task Pane").Visible=False End Sub 批量清除软回车 Sub批量清除软回车() '也可直接使用Alt+10或13替换 Cells.Replace What:=Chr(10),Replacement:="", LookAt:=xlPart,SearchOrder:=_ xlByRows,MatchCase:=False,SearchFormat:=False, ReplaceFormat:=False End Sub 判断指定文件是否已经打开 Sub判断指定文件是否已经打开() Dim x As Integer For x=1To Workbooks.Count If Workbooks(x).Name="函数.xls"Then'文件名称MsgBox"文件已打开" Exit Sub End If Next MsgBox"文件未打开" End Sub 当前文件另存到指定目录 Sub当前激活文件另存到指定目录() ActiveWorkbook.SaveAs Filename:="E:\信件\"& https://www.360docs.net/doc/3b11858057.html, End Sub

另存指定文件名 Sub另存指定文件名() ActiveWorkbook.SaveAs ThisWorkbook.Path&"\别名.xls" End Sub 以本工作表名称另存文件到当前目录 Sub以本工作表名称另存文件到当前目录() ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path&"\" &https://www.360docs.net/doc/3b11858057.html,&".xls" End Sub 将本工作表单独另存文件到Excel当前默认目录 Sub将本工作表单独另存文件到Excel当前默认目录() ActiveSheet.Copy ActiveWorkbook.SaveAs Filename:=https://www.360docs.net/doc/3b11858057.html,& ".xls" End Sub 以活动工作表名称另存文件到Excel当前默认目录 Sub以活动工作表名称另存文件到Excel当前默认目录() ActiveWorkbook.SaveAs Filename:=https://www.360docs.net/doc/3b11858057.html,& ".xls",FileFormat:=_ xlNormal,Password:="",WriteResPassword:="", ReadOnlyRecommended:=False_ ,CreateBackup:=False End Sub 另存所有工作表为工作簿 Sub另存所有工作表为工作簿() Dim sht As Worksheet Application.ScreenUpdating=False ipath=ThisWorkbook.Path&"\" For Each sht In Sheets

Excel常用宏大全

Excel 常用宏大全(一) 259个常用宏-excelhome-LangQueS(1) 2008-04-01 17:21 打开全部隐藏工作表 Sub 打开全部隐藏工作表() Dim i As Integer For i = 1 To Sheets.Count Sheets(i).Visible = True Next i End Sub 循环宏 Sub 循环() AAA = Range("C2") Dim i As Long Dim times As Long times = AAA 'times代表循环次数,执行前把times赋值即可(不可小于1,不可大于47) For i = 1 To times Call 过滤一行 If Range("完成标志") = "完成" Then Exit For '如果名为'完成标志'的命名单元的值等于'完成',则退出循环,如果一开始就等于'完成',则只执行一次循环就退出 'If Sheets("传送参数").Range("A" & i).Text = "完成" Then Exit For '如果某列出现"完成"内容则退出循环

Next i End Sub 录制宏时调用“停止录制”工具栏 Sub 录制宏时调用停止录制工具栏() https://www.360docs.net/doc/3b11858057.html,mandBars("Stop Recording").Visible = True End Sub 高级筛选5列不重复数据至指定表 Sub 高级筛选5列不重复数据至Sheet2() Sheets("Sheet2").Range("A1:E65536") = "" '清除Sheet2的A:D列 Range("A1:E65536").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Sheet2.Range( _ "A1"), Unique:=True Sheet2.Columns("A:E").Sort Key1:=Sheet2.Range("A2"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _ :=xlPinYin End Sub 双击单元执行宏(工作表代码) Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Range("$A$1") = "关闭" Then Exit Sub Select Case Target.Address Case "$A$4" Call 宏1

257个Excel宏常用语句

257个Excel宏常用语句 1、打开全部隐藏工作表 (7) 2、循环宏 (7) 3、录制宏时调用“停止录制”工具栏 (7) 4、高级筛选5列不重复数据至指定表 (7) 5、双击单元执行宏(工作表代码) (8) 6、双击指定区域单元执行宏(工作表代码) (8) 7、进入单元执行宏(工作表代码) (8) 8、进入指定区域单元执行宏(工作表代码) (9) 9、在多个宏中依次循环执行一个(控件按钮代码) (9) 10、在两个宏中依次循环执行一个并相应修改按钮名称(控件按钮代码) (9) 11、在三个宏中依次循环执行一个并相应修改按钮名称(控件按钮代码) (10) 12、根据A1单元文本隐藏/显示按钮(控件按钮代码) (10) 13、当前单元返回按钮名称(控件按钮代码) (10) 14、当前单元内容返回到按钮名称(控件按钮代码) (11) 15、奇偶页分别打印 (11) 16、自动打印多工作表第一页 (11) 17、查找A列文本循环插入分页符 (12) 18、将A列最后数据行以上的所有B列图片大小调整为所在单元大小 (12) 19、返回光标所在行数 (13) 20、在A1返回当前选中单元格数量 (13) 21、返回当前工作簿中工作表数量 (13) 22、返回光标选择区域的行数和列数 (13) 23、工作表中包含数据的最大行数 (13) 24、返回A列数据的最大行数 (13) 25、将所选区域文本插入新建文本框 (14) 26、批量插入地址批注 (14) 27、批量插入统一批注 (14) 28、以A1单元内容批量插入批注 (15) 29、不连续区域插入当前文件名和表名及地址 (15) 30、不连续区域录入当前单元地址 (15) 31、连续区域录入当前单元地址 (15) 32、返回当前单元地址 (16) 33、不连续区域录入当前日期 (16) 34、不连续区域录入当前数字日期 (16) 35、不连续区域录入当前日期和时间 (16) 36、不连续区域录入对勾 (16) 37、不连续区域录入当前文件名 (16) 38、不连续区域添加文本 (16) 39、不连续区域插入文本 (17) 40、从指定位置向下同时录入多单元指定内容 (17) 41、按aa工作表A列的内容排列工作表标签顺序 (17) 42、以A1单元文本作表名插入工作表 (17)

excel常用宏集合

65:删除包含固定文本单元的行或列 Sub 删除包含固定文本单元的行或列() Do (what:="哈哈").Activate '删除行 ' '删除列 Loop Until (what:="哈哈") Is Nothing End Sub 72:在指定颜色区域选择单元时添加/取消"√"(工作表代码) Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim myrg As Range For Each myrg In Target If = 37 Then myrg = IIf(myrg <> "√", "√", "") Next End Sub 73:在指定区域选择单元时添加/取消"√"(工作表代码) Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim Rng As Range If <= 15 Then If Not (Target, Range("D6:D20")) Is Nothing Then For Each Rng In Selection With Rng If .Value = "" Then .Value = "√" Else .Value = "" End If End With Next End If End If End Sub 74:双击指定单元,循环录入文本(工作表代码)

Private Sub Worksheet_BeforeDoubleClick(ByVal T As Range, Cancel As Boolean) If <> "$A$1" Then Exit Sub Cancel = True T = IIf(T = "好", "中", IIf(T = "中", "差", "好")) End Sub 75:双击指定单元,循环录入文本(工作表代码) Dim nums As Byte Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If = "$A$1" Then nums = nums Mod 3 + 1 Target = Mid("上中下", nums, 1) (1, 0).Select End If End Sub 76:单元区域引用(工作表代码) Private Sub Worksheet_Activate() ("A1:B3").Value = ("A1:B3").Value End Sub 77:在指定区域选择单元时数值加1(工作表代码) Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not ([a1:e10], Target) Is Nothing Then Target = Val(Target) + 1 End If End Sub 259个常用宏-excelhome(3) 2009-08-15 14:12:58 78:混合文本的编号 Sub 混合文本的编号() Worksheets(1).Range("B2").Value = "北京" & (--(Mid(Worksheets(1).Range("B2"), 3,

在电子表格中宏的作用及设置

在电子表格中,宏的作用及设置?? 宏是一个指令集,用来告诉EXCEL来完成用户指定的动作。宏类似于计算机程序,但是它是完全运行于EXCEL之中的,我们可以使用宏来完成枯燥的、频繁的重复性工作。宏完成动作的速度比用户自己做要快得多。例如,我们可以创建一个宏,用来在工作表的每一行上输入一组日期,并在每一单元格内居中对齐日期,然后对此行应用边框格式。我们还可以创建一个宏,在“页面设置”对话框中指定打印设置并打印文档。 由于宏病毒的影响和对编程的畏惧心理,使很多人不敢用“宏”,或是不知道什么时候可以找宏来帮忙。其实你尽管放心大胆地去用,如果只是用“录制宏”的方法,根本就没有什么难的,只是把一些操作象用录音机一样录下来,到用的时候,只要执行这个宏,系统就会把那操作再执行一遍。 下面给出了宏的应用场合,只要用“录制宏”就可以帮你完成任务,而不需要编程。如果想对所录制的宏再进行编辑,就要有一定的VBA知识了。 * 设定一个每个工作表中都需要的固定形式的表头; * 将单元格设置成一种有自己风格的形式; * 每次打印都固定的页面设置; * 频繁地或是重复地输入某些固定的内容,比如排好格式的公司地址、人员名单等; * 创建格式化表格; * 插入工作表或工作薄等。 补充: 最简单使用宏的方式:工具--宏--录制新宏。然后指定一个快捷键,就可以录制了。 录制的过程,其实是将最常用的操作记录下来,下次直接按快捷键就可以操作了。 比如每次需要将页面设置成横向,那么,选择工具--宏--录制新宏,指定CTRL+K 为快捷键,然后就开始了录制过程。选择页面设置,将页面设置成横向,点结束录制。以后打开一个EXCEL表时,只要你按CTRL+K,就可以将页面设置成横向了。

Excel宏功能简单应用介绍

Excel宏功能简单应用介绍 所谓宏,就是一组指令集,通过执行类似批处理的一组命令,来完成某种功能。Microsoft Office的组件都可以支持宏(Macro)的操作,而Office的宏是指使用VB Script指令集(VB编程语言的子集,可以使用VB的常用语句)编写的针对Office组件的小程序。利用宏,我们可以完成很多程序原本并不支持的特殊应用,比如完成某种特殊的数据计算,或者文档的特殊格式排版等等。下面,就让我们举个简单的例子,看看宏在Excel中如何应用。 有这样一个Excel表格,工作表Sheet1中的第2行的B列开始至D列的连续单元格中是一组共3个数据,第A列的第3行开始至第6行的连续单元格中是一组共4个日期,要编写一段宏来完成这样的工作:将Sheet1第2行的数据由左至右依次纵向复制到Sheet2的B列(从B2开始)中,然后将这组复制完的3个数据所在行的A列都填入Sheet1的A3单元格里面的日期,完成后重复之前的操作,将Sheet1第2行的数据再次复制到Sheet2的B列,这次是从上次复制的B 列数据下面的空白单元格,也就是B5开始,然后再在这次复制的3个数据的左侧A列填入Sheet1的A4单元格的日期,这样反复循环,直到Sheet1的A列的所有日期都出现在了Sheet2的A列里面,也就是Sheet1的第2行数据在Sheet2的B列里面被复制了4次为止。 编写宏只要有一点点简单的VB编程知识就可以了,并不一定需要很高深的编程技巧,很多时候我们需要的只是一些重复的操作,我们可以通过宏的录制功能来录制一次需要的操作过程,然后再对已经录制的宏进行简单的修改,就能得到所需要的宏了。

EXCEL宏的使用解读

EXCEL宏的使用 一、选中单个单元格 Range(“<单元格地址>“).Select 例:Range("C9").Select ‘选中“C9”单元格 二、选中多个单元格 Range(“<单元格地址>:<单元格地址>[,<单元格地址>……]”).Select 例:Range(“A1:B2”).Select ‘选中“A1”、“A2”、“B1”、“B2”四个连续的单元格 Range(“12:12”).Select ‘选中第12行 Range(“B:B”).Select ‘选中第B列 Range(“A1:A2,B7,2:2”).Select ‘选中“A1”、“A2”、“B7”五个不连续的单元格和第二行 Cells.Select ‘选中当前SHEET中的所有单元格 Rows("<行地址>:<行地址>").Select ‘选中整行 Columns("<列地址>:<列地址>").Select ‘选中整列 例:Rows(“2:2”). Select ‘选中第2行 Rows(“2:5”). Select ‘选中2到5行 Columns("A:A").Select ‘选中A列 Columns("E:B").Select ‘选中E到B列 三、设置活动单元格 Range("<单元格地址>").Activate 注:设置活动单元格与选中单元格类似,不同之处就是 后者在选中指定的单元格之前会将在此前已被选中的单元格取消掉。 前者在设置之前不会取消已选中的单元格,如果此时操作的单元格不是被选中的单元格,这时他实现的功能与选一个单元格相同。 四、给活动的单元格赋值 ActiveCell.FormulaR1C1 = <值> 例:Range("A1").Select ActiveCell.FormulaR1C1 = "Name" Range("B1").Select

EXCEL一般常用宏.

代码目录链接类别 登录打开全部隐藏工作表点击工作表 循环宏点击宏管理 录制宏时调用“停止录制”工具栏点击其他 高级筛选5列不重复数据至指定表点击筛选 在多个宏中依次循环执行一个(控件按钮代码点击宏管理在两个宏中依次循环执行一个并相应修改按钮名称 点击宏管理 (控件按钮代码 在三个宏中依次循环执行一个并相应修改按钮名称 点击宏管理 (控件按钮代码 根据A1单元文本隐藏/显示按钮(控件按钮代码点击控件当前单元返回按钮名称(控件按钮代码点击控件 当前单元内容返回到按钮名称(控件按钮代码点击控件奇偶页分别打印点击打印 自动打印多工作表第一页点击打印 查找A列文本循环插入分页符点击打印 将A列最后数据行以上的所有B列图片大小调整为所在

点击对象 单元大小 返回光标所在行数点击查找和引用 返回光标选择区域的行数和列数点击查找和引用工作表中包含数据的最大行数点击查找和引用返回A列数据的最大行数点击查找和引用 将所选区域文本插入新建文本框点击对象 批量插入地址批注点击批注 批量插入统一批注点击批注 以A1单元内容批量插入批注点击批注 以A1单元文本作表名插入工作表点击单元赋值批量插入当前文件名和表名及地址点击单元赋值区域录入当前单元地址点击单元赋值 区域录入当前日期点击单元赋值 区域录入当前数字日期点击单元赋值 区域录入当前日期和时间点击单元赋值 不连续区域录入对勾点击单元赋值 不连续区域录入当前文件名点击单元赋值 不连续区域添加文本点击单元赋值

不连续区域插入文本点击单元赋值 从指定位置向下同时录入多单元指定内容点击单元赋值 按aa工作表A列的内容排列工作表标签顺序点击工作表 删除全部未选定工作表点击工作表 工作表标签排序点击工作表 在目录表建立本工作簿中各表链接目录点击文件管理 建立工作表文本目录点击工作表 查另一文件的全部表名点击工作表 当前单元录入计算机名点击单元赋值 当前单元录入计算机用户名点击单元赋值 解除全部工作表保护点击工作表为指定工作表加指定密码保护表点击密码 在有密码的工作表执行代码点击密码 执行前需要验证密码的宏(控件按钮代码点击密码 拷贝A1公式和格式到A2点击单元赋值复制单元数值点击单元赋值插入数值条件格式点击格式 插入透明批注点击批注 添加文本点击单元赋值光标定位到指定工作表A列最后数据行下一单元点击定位 定位选定单元格式相同的全部单元格点击定位

相关文档
最新文档