当前位置:文档之家› VBA常用注释代码

VBA常用注释代码

VBA常用注释代码
VBA常用注释代码

VBA常用注释代码

Sub 开启最近使用过的档案()

MsgBox "显示最近使用过的第二个文件名称,并开启它"

MsgBox Application.RecentFiles(2).Name

Application.RecentFiles(2).Open

End Sub

Sub 内存容量()

MsgBox "Excel可使用的内存大小为:" & Application.MemoryTotal MsgBox "Excel已使用的内存为:" & Application.MemoryUsed

MsgBox "Excel剩余的内存大小为:" & Application.MemoryFree End Sub

Sub 全屏幕模式()

Dim gamen As Boolean

MsgBox "将Excel的显示模式设为全屏幕"

gamen = Application.DisplayFullScreen

Application.DisplayFullScreen = True

MsgBox "回复原来的状态"

Application.DisplayFullScreen = gamen

End Sub

fileToOpen = Application.GetOpenFilename("Text Files (*.txt), *.txt")

希望能将一个TXT文件自动分割到几个SHEET里面,如果它超过65536行Dim ResultStr As String

Dim FileName As String

Dim FileNum As Integer

Dim Counter As Double

FileName = Application.GetOpenFilename

If FileName = "" Then End

FileNum = FreeFile()

Open FileName For Input As #FileNum

Application.ScreenUpdating = False

Workbooks.Add Template:=xlWorksheet

Counter = 1

Do While Seek(FileNum) <= LOF(FileNum)

Application.StatusBar = "Importing Row " & _

Counter & " of text file " & FileName

Line Input #FileNum, ResultStr

If Left(ResultStr, 1) = "=" Then

ActiveCell.Value = "'" & ResultStr

Else

ActiveCell.Value = ResultStr

End If

If ActiveCell.Row = 65536 Then

ActiveWorkbook.Sheets.Add

Else

ActiveCell.Offset(1, 0).Select

End If

Counter = Counter + 1

Loop

Close

Application.StatusBar = False

如何用vba代码显示当前工作簿是只读状态还是可修改状态:MsgBox ThisWorkbook.ReadOnly

欲判断单元格中是否是#N/A如何处理.如:If Range("F" & bl & "").Value = "#N/A" Then

这样该单元格内容类型是否为字符串.不加引号报错.:

Sub bb()

Set testrng = [b1]

If IsError(testrng) Then

If testrng = CVErr(xlErrNA) Then

MsgBox "就是#N/A"

Else

MsgBox "其他错误"

End If

Else

MsgBox "没有错误"

End If

End Sub

Sub UseFileDialogOpen()

Dim lngCount As Long

' Open the file dialog

With Application.FileDialog(msoFileDialogOpen)

.AllowMultiSelect = True

.Show

' Display paths of each file selected

For lngCount = 1 To .SelectedItems.Count

MsgBox .SelectedItems(lngCount)

Next lngCount

End With

End Sub

从另外一个未打开的Excel文件中读取数据的函数

下面这个函数调用XLM宏从未打开的工作簿中读取数据. 注意: 该函数不能用于公式.

GetValue函数,需要以下四个变量

path: 未打开的Excel文件的路径(e.g., "d:¥test") file: 文件名(e.g., "test.xls")

sheet: 工作表的名称(e.g., "Sheet1")

ref: 引用的单元格(e.g., "C4")

Private Function GetValue(path, file, sheet, ref)

' 从未打开的Excel文件中检索数据

Dim arg As String

' 确保该文件存在

If Right(path, 1) <> "¥" Then path = path & "¥"

If Dir(path & file) = "" Then

GetValue = "File Not Found"

Exit Function

End If

' 创建变量

arg = "'" & path & "[" & file & "]" & sheet & "'!" & _

Range(ref).Range("A1").Address(, , xlR1C1)

' 执行XLM 宏

GetValue = ExecuteExcel4Macro(arg)

End Function

使用该函数:

将该语句复制到VBA的模块中,然后,在适当的语句中调用该函数. 下面的例子显示D:¥test 下的文件test.xls 的Sheet1中的单元格”A1”的内容.

Sub TestGetValue()

p = "d:¥test"

f = "test.xls"

s = "Sheet1"

a = "A1"

MsgBox GetValue(p, f, s, a)

End Sub

下面还有一个例子.这个语句从一个未打开的文件中读取1200个数值(100行12列),并将结果填到当前工作表中.

Sub TestGetValue2()

p = "d:¥test "

f = "test.xls"

s = "Sheet1"

Application.ScreenUpdating = False

For r = 1 To 100

For c = 1 To 12

a = Cells(r, c).Address

Cells(r, c) = GetValue(p, f, s, a)

Next c

Next r

Application.ScreenUpdating = True

End Sub

说明: 如果工作簿处于隐藏状态,或者工作表是图表工作表,将会报错.

在VBA中怎么象"我的电脑中的文件夹档"一样让用户自已选择路径和文件.

选择文件:Application.GetopenFilename

选择文件夹:1、Application.FileDialog(msoFileDialogFolderPicker)

在H 列,从H3 开始,每隔3行分别输入 A 到H !

Application.ScreenUpdating = False

Dim arr(1 To 65536, 1 To 1), i As Long

For i = 3 To 65536 Step 4

arr(i, 1) = Chr(((i - 3) ¥ 4) Mod 8 + 65)

Next

Range("h1:h65536") = arr

Application.ScreenUpdating = True

有一單元格,我設置了格式為自動換行。現在想通過程式取得這個單元格自動換行產生的行數

Dim a As Integer, i As Integer, j As Integer, k As Integer, w As Single, t As String, tt As String

t = CStr(ActiveCell)

tt = t

w = ActiveCell.ColumnWidth

Application.ScreenUpdating = False

ActiveCell.WrapText = False

ActiveCell.ClearContents

a = Len(tt)

i = 1

j = 0

k = 0

Do

ActiveCell = Left(tt, i)

ActiveCell.Columns.AutoFit

If ActiveCell.ColumnWidth > w Then ActiveCell.ColumnWidth = w

k = k + 1

tt = Right(tt, Len(tt) - i + 1)

i = 1

Else

ActiveCell.ColumnWidth = w

i = i + 1

j = j + 1

If j > a Then

k = k + 1

Exit Do

End If

End If

Loop

ActiveCell = t

Application.ScreenUpdating = True

ActiveCell.WrapText = True

MsgBox "自动换行行数为" & k

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) If Target.Row >= 2 Then

On Error Resume Next

[ChangColor_With].FormatConditions.Delete

https://www.doczj.com/doc/c21158273.html, = "ChangColor_With"

With [ChangColor_With].FormatConditions

.Delete

.Add xlExpression, , "TRUE"

.Item(1).Interior.ColorIndex = 35

.Item(1).Font.Bold = True

.Item(1).Font.ColorIndex = 3

'.Item(1).Font.Size = 20

'.Item(1)https://www.doczj.com/doc/c21158273.html, = "?s???愰?

.Item(1).Font.Italic = True

.Item(1).Font.Underline = xlUnderlineStyleSingle

End With

End If

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) If Target.Row >= 2 Then

On Error Resume Next

[ChangColor_With1].FormatConditions.Delete

https://www.doczj.com/doc/c21158273.html, = "ChangColor_With1"

With [ChangColor_With1].FormatConditions

.Delete

.Add xlExpression, , "TRUE"

.Item(1).Interior.ColorIndex = 24

End With

End If

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) If Target.Row >= 2 Then

On Error Resume Next

[ChangColor_With2].FormatConditions.Delete

[ChangColor_With3].FormatConditions.Delete

https://www.doczj.com/doc/c21158273.html, = "ChangColor_With2"

https://www.doczj.com/doc/c21158273.html, = "ChangColor_With3"

With [ChangColor_With2].FormatConditions

.Delete

.Add xlExpression, , "TRUE"

.Item(1).Interior.ColorIndex = 24

End With

With [ChangColor_With3].FormatConditions

.Delete

.Add xlExpression, , "TRUE"

.Item(1).Interior.ColorIndex = 24

End With

End If

End Sub

工作表有加载宏,打开时自动加载菜单,是一个3级的,当加载另外的一个宏时,建立新菜单,接在前一个菜单下

For Each MenuItem1J In CommandBars(1).Controls

If MenuItem1J.Caption = A" Then GoTo 1

Next

Set MenuItem1J = CommandBars(1).Controls.Add(Type:=msoControlPopup) MenuItem1J.Caption = A"

1:

For Each MenuItem2J In MenuItem1J.Controls

If MenuItem2J.Caption = "B" Then GoTo 2

Next

Set MenuItem2J = MenuItem1J.Controls.Add(Type:=msoControlPopup)

MenuItem2J.Caption = "B"

Set MenuItem3J = MenuItem2J.Controls.Add(Type:=msoControlButton)

MenuItem3J.Caption = "B-1"

MenuItem3J.OnAction = "Macro1"

Set MenuItem3J = MenuItem2J.Controls.Add(Type:=msoControlButton) MenuItem3J.Caption = "B-2"

MenuItem3J.OnAction = "Macro1"

进度条:

Private Sub CommandButton1_Click()

Dim i, maxn, dd, ff As Integer

maxn = 100

UserForm1.Show

dd = 5

ff = 101

For i = 1 To maxn

Cells(i, 1) = maxn - Cells(i, 1).Value + 1

https://www.doczj.com/doc/c21158273.html,bel1.Width = Int(i / maxn * 218)

If https://www.doczj.com/doc/c21158273.html,bel1.Width >= 101 Then

If https://www.doczj.com/doc/c21158273.html,bel1.Width - 1 = ff Then

ff = https://www.doczj.com/doc/c21158273.html,bel1.Width

UserForm1.TextBox3.Text = CStr(Int(i / maxn * 100)) + "%"

If https://www.doczj.com/doc/c21158273.html,bel1.Width <= 124 Then

dd = dd + 1

UserForm1.TextBox3.Width = dd

' Application.Wait (Now + TimeValue("0:00:01"))

End If

End If

End If

UserForm1.TextBox2.Text = IIf(Int(i / maxn * 100) < 10, " " & CStr(Int(i / maxn * 100)) + "%", CStr(Int(i / maxn * 100)) + "%")

DoEvents

Next i

MsgBox "done"

Unload UserForm1

End Sub

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

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

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

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.doczj.com/doc/c21158273.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.doczj.com/doc/c21158273.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 三、代码详解

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.doczj.com/doc/c21158273.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

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

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

ExcelVBA常用代码VSTO版

Excel VBA常用代码VSTO版(C#) 1-1使用Range属性 this.Range["A3:F6, B1:C5"].Select(); 1-2使用Cells属性 for(int icell=1;icell<=100;icell++) { this.Application.Worksheets[2].cells[icell, 1].value = icell; } 1-3使用快捷记号 #N/A 1-4使用Offset属性 this.Range["A1:A3"].Offset[3, 3].Select(); 1-5使用Resize属性 this.Range["A1"].Resize[3, 3].Select(); 1-6使用Union属性 this.Application.Union(this.Range["A1:D4"], this.Range["E5:H8"]).Select(); 1-7使用UsedRange属性 https://www.doczj.com/doc/c21158273.html,edRange.Select(); 1-8使用CurrentRegion属性 this.Range["A5"].CurrentRegion.Select(); 2-1 使用Select方法 this.Application.Worksheets[3].Activate(); this.Application.Worksheets[3].Range["A1:B10"].Select(); 2-2 使用Activate方法 this.Application.Worksheets[3].Activate(); this.Application.Worksheets[3].Range["A1:B10"].Activate(); 注:此处的代码,可以运行,但是只会选中A1这一个单元格 2-3 使用Goto方法

Excel VBA编程的常用代码

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)

excel代码大全

excel代码大全.txt第一次笑是因为遇见你,第一次哭是因为你不在,第一次笑着流泪是因为不能拥有你。EXCEL宏代码大全 本文件部分文章来源于网络,文章版权归原作者所有,如果本站转载的文章侵犯了您的权益请及时联系我们,我们将尽快妥善处理。本站除部分特别声明禁止转载的专稿外,其他文章可以自由转载,但请务必注明原出处和作者。 000. A列半角内容变红 Sub A列半角内容变红() Dim rg As Range, i As Long = False For Each rg In (xlCellTypeConstants, 3) For i = 1 To Len(rg) If Asc(Mid(rg, i, 1)) 001. A列等于A列减B列 Sub A列等于A列减B列() For i = 1 To 23 Cells(i, 1) = Cells(i, 1) - Cells(i, 2) Next End Sub 002. B列录入数据时在A列返回记录时间(工作表代码) Public Sub Worksheet_Change(ByVal Target As Range) If = 2 Then (, -1) = Now End If End Sub 003. Excel宏常用代码 本大类暂没有内容,以下是关于本类的所有记录集。 004. Sub 以当前日期为名称另存文件() Filename:=Date & ".xls" End Sub 005. Sub 启用保存() ("File").Controls(4).Enabled = True ("File").Controls(5).Enabled = True End Sub 006. Sub 执行前需要验证密码的宏()

Excel VBA 常用代码50例

Excel VBA 常用代码50例 001。用命令按扭打印一个sheet1中B2:M30区域中的内容? 我想在Sheet2中制件一个命令按扭, 打印表Sheet1中的[B2:M30] 区域中的内容? 解答:可以将打印区域设为b2:m30,然后打印,如:sheets("sheet1").printarea="b2:m30" sheets("sheet1").printout 随手写的,你可以试试看。最简单的方法是:你先录制宏,在录制宏过程中,跑到页面设臵里面,把打印范围设臵到你想要的范围。 然后退出,停止录制宏,你就可以得到一些代码! 002。能否对一列中的文字统一去掉最后一个字?这些文字不统一,有些字数多,有些字数少。如何处理?我用{"&-}不行 解答:=REPLACE(A1,LEN(A1),1," ")(在过渡列进行) 003.能否根据单元格数值自动标记序号? 各位大佬,一工作表有两列,“序号”及“金额”,能否将金额不等于0的行自动标上序号呢?如无现成的函数,应怎样设臵? 解答:Dim xuhao As Integer xuhao = 1

Range("b2").Select Do While Selection <> "" If Selection <> 0 Then ActiveCell.Previous.Value = xuhao xuhao = xuhao + 1 End If ActiveCell.Offset(1, 0).Range("a1").Select Loop 004.求教自定义函数 查询了一些自定义函数的例子都是单变量的。自定义函数能否建立“(As Range) As Interger”的函数,应该可以的,请各位大师赐教!请以“∑x2”为例,万分感谢!(该用"For Each ...Next",就是还不知道如何引用Range中的每个值,请高手指点。) 解答:参数使用Range而函数值为Integer是可以的 用for each next循环思路也是对的,应该这样作: dim rg as range dim ivalue as integer for each rg in 参数区域 ivalue=ivalue+rg.value next

excelvba编程的常用代码

强制声明变量 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 = 选择当前单元格所在区域 在EXCEL97中,有一个十分好的功能,他就是把鼠标放置在一个有效数据单元格中,执行该段代码,你就可以将连在一起的一片数据全部选中。只要将该段代码加入到你的模块中。Sub My_Select End sub 返回当前单元格中数据删除前后空格后的值 sub my_trim msgbox Trim end sub

单元格位移 sub my_offset (0, 1).Select'当前单元格向左移动一格 (0, -1).Select'当前单元格向右移动一格 (1 , 0).Select'当前单元格向下移动一格 (-1 , 0).Select'当前单元格向上移动一格 end sub 如果上述程序产生错误那是因为单元格不能移动,为了解除上述错误,我们可以往 sub my_offset 之下加一段代码 on error resume next 注意以下代码都不再添加sub “代码名称” 和end sub请自己添加! 给当前单元格赋值 = "你好!!!" 给指定单元格赋值 例如: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" 说明: 被选中,然后在将“HELLO"赋到A1单元格中。 不必被选中,即可“HELLO"赋到sheet2 的A1单元格中。

Excel VBA编程常用代码

Excel VBA编程常用代码 时间:2009-12-05 22:36:04 来源:本站作者:未知我要投稿我要收 藏投稿指南 用过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'当前单元格向左移动一格

VBA宏编程示例集50个常用代码(下载)

VBA宏编程示例集50个常用代码(下载)加入收藏 网站地图 网站搜索 简繁默 excel资源下载首页 excel教程下载专区 excel函数、VBA、技巧视频教程 excel 函数学习资料 excel财务会计报表模板 返回excel论坛 VBA学习资料 Excel图表专区 excel在线学习 Excel技巧全接触 excel办公常用表格 Excel在线帮助 VBA在线帮助 excel2007精华教程 Excel电子表格问题解答 Excel函数应用手册 excel → VBA学习资料 阅读新闻 VBA宏编程示例集50个常用代码(下载) [日期:2007-07-25]来源:作者:蓝桥玄霜[字体:大中小] VBA示例集1内容: 1,从数据源匹配取数的问题 2,部分字符地址查找 3,多表查询汇总和重复值问题(相同行删除、循环比较) 4,工作表的名称和index号 5,重复值加色 6,统计 7,最大或最小 8,最后一记录(定义动态区域名称、不重复值公式宏、不重复值个数和行数公式宏、加边框宏) 9,大港表格转换 10,筛选尾数 11,对比数据 12,修改批注字体 13,删除合并单元格 14,物品领用报表 15,条件格式设置 16,多表查询,自动筛选法 17,多条件查询累计汇总 18,和值 19,教师安排汇总(循环比较、不重复值) 20,自动着色(不同个数、不同颜色)

21,不重复值的个数及所在行的行数(各个值的个数、行数) 22,分表自动字体格式化 23,自动填充数字 24,导入文本文件 25,累计不变化(内部循环) 26,同结构多表统计汇总(Consolidate方法) 27,资产负债表汇总(多工作簿汇总) 28,导出到文本文件 29,角度求和的自定义公式 30,表单输入模板 31,两表间复制与核对 VBA示例集2内容: 1,页眉用指定单元格内容 2,转存到另一工作簿(指定路径、文件名) 3,数字转美元和沙特里亚尔(阿拉伯数字转英文写法) 4,三表合一(多表数据复制至一表) 5,按尾数排序 6,按周汇总 7,百位分析图表 8,分光捉影 9,补缴保险 10,转置数据 11,提取斜体字符 12,另类格式 13,新林电话 14,图形有条件复制 15,总表拆分 16,另表汇总 17,统计排列变色 18,导出到多文本文件 19,多工作簿提取数据汇总 upload/07072516059510.rar 阅读:5687 次 录入:admin 【评论】【推荐】【打印】 上一篇:VBA方法、属性参考资料大全(下载) 下一篇:EXCEL加载宏制作攻略

Excel-VBA常用技巧代码

多个工作薄合并成同一个工作薄,如何合并? 多人填一个同样的工作薄,形成了多个工作薄。如何让几人填了一部分的工作薄合并成终稿。 Sub 汇总() Dim mypath As String, myname As String, Dname As String, sh As Workbook, copyrow As Integer Set sh = ThisWorkbook mypath = ThisWorkbook.Path myname = https://www.doczj.com/doc/c21158273.html, Dname = Dir(mypath & "\*.xls") Application.ScreenUpdating = False Do While Dname <> "" If Dname <> myname Then copyrow = 1 With GetObject(mypath & "\" & Dname) For i = 1 To .Worksheets.Count If .Sheets(i).Cells(5, 3) <> "" Then .Sheets(i).Rows("1:" & .Sheets(i).UsedRange.Rows.Count).Copy sh.Sheets(i).Cells(copyrow, 1) End If Next .Close False End With End If Dname = Dir Loop Application.ScreenUpdating = True MsgBox "OK!" End Sub

合并工作簿:将其他工作簿的全部表合并到本工作 Sub 合并工作簿() Dim FilesToOpen Dim x As Integer On Error GoTo ErrHandler Application.ScreenUpdating = False FilesToOpen = Application.GetOpenFilename _ (FileFilter:="Microsoft Excel Files (*.xls), *.xls", _ MultiSelect:=True, Title:="Files to Merge") If TypeName(FilesToOpen) = "Boolean" Then MsgBox "No Files were selected" GoTo ExitHandler End If x = 1 While x <= UBound(FilesToOpen) Workbooks.Open Filename:=FilesToOpen(x) Sheets().Move After:=ThisWorkbook.Sheets _ (ThisWorkbook.Sheets.Count) x = x + 1 Wend ExitHandler: Application.ScreenUpdating = True Exit Sub ErrHandler: MsgBox Err.Description Resume ExitHandler End Sub Sub 合并工作表() For Each st In Worksheets If https://www.doczj.com/doc/c21158273.html, <> https://www.doczj.com/doc/c21158273.html, Then https://www.doczj.com/doc/c21158273.html,edRange.Offset(1, 0).Copy [a65536].End(xlUp).Offset(1, 0) Next End Sub

VBA常用代码

1.遍历所有已打开的word文档 For Each docOpened In Documents …… Next docOpened 2.Word 将目录下所有文档转换为txt,并删除原文档 Sub 目录下doc转txt() '目录下所有word文档转为txt,并删除word文档 '保存在原目录 '遍历所有文件夹,把带路径的文件名存入字典 On Error Resume Next Dim Path As String, t 'Path为路径,t用于计算程序执行花费的时间 Set objshell = CreateObject("Shell.Application") Set objfolder = objshell.BrowseForFolder(0, "选择文件夹", 0, 0) If Not objfolder Is Nothing Then Path = objfolder.sel f.Path & "\" Set objfolder = Nothing Set objshell = Nothing '创建字典用于存储路径和文件名 Dim DicPath, DicFile, i As Integer, Ke, ContentName A s String, FileName As String, MsgTxt Set DicPath = CreateObject("Scripting.Dictionary")

Set DicFile = CreateObject("Scripting.Dictionary") DicPath.Add Path, "" i = 0 '存所有路径 Do While i < DicPath.count Ke = DicPath.keys ContentName = Dir(Ke(i), vbDirectory) Do While ContentName <> "" '若有子文件夹,则添加 '跳过当前的目录及上层目录 If ContentName <> "." And ContentName < > ".." Then If GetAttr(Ke(i) & ContentName) = vbDirectory Then DicPath.Add (Ke(i) & Conte ntName & "\"), "" End If End If ContentName = Dir Loop i = i + 1 Loop '存所有doc文件名 For Each Ke In DicPath.keys FileName = Dir(Ke & "*.doc")

相关主题
文本预览
相关文档 最新文档