Excel之VBA操作

开始

  • Application 对象,表示 Excel 应用程序。
  • Workbook 对象,表示工作簿对象。
  • Worksheet 对象,表示工作表对象
  • Range 对象,表示单元格区域对象。
  • Visual Basic:打开 VBA 编辑器,快捷键是 Alt + F11
    指导
    注释内容:以英文单引号 (') 开头,后面接注释的内容
'我是一行注释,不会被执行

把开发工具调用出来
在这里插入图片描述

包含宏的代码的文件后缀是xlsm
在这里插入图片描述

宏安全
Excel 提供 4 种宏安全性选项,在开发工具选项卡,点击「宏安全性」按钮,打开信任中心。4 种选项具体如下
在这里插入图片描述
禁用所有宏,并发出通知:默认状态下,无法运行 VBA 代码。但是 Excel 在打开包含 VBA 代码的工作簿时,在编辑栏上方,显示安全警告,并且可以选择启用代码运行或不启用。如果选择启用,下次打开相同的工作簿,不会出现警告。
添加受信任位置
把一个文件夹添加到 Excel 受信任的位置后,该文件夹下的包含 VBA 代码的工作簿打开时,不会提示安全警告,也无需每次手动开启代码。

设置方法:在开发工具选项卡,点击「宏安全性」按钮,弹出信任中心窗口,在左侧列表中,选择「受信任位置」。点击下方的「添加新位置」按钮,添加自己信任的一个文件夹。
在这里插入图片描述

操作

1.变量定义

语法 dim 变量名 as 数据类型(如 dim a as string) 或者 dim 变量名 标志符(如a$)

2.常见的数据类型

-1.字符串型(string 或 $)

  语法:dim  a  as  string (定义变量a作为字符串型) 或者     dim   a$

-2.整数型(integer 或 %)

  语法:dim  a  as  integer (定义变量a作为整数型) 或者     dim   a%

-3.长整数型(long 或 &)

  语法:dim  a  as  long (定义变量a作为长整数型)  或者     dim    a&

  注意:如果整数数据超过32767就用long

-4.单精度型(single 或 !)

  语法:dim  a  as  single (定义变量a作为单精度型)  或者    dim   a!

  注意:single 精确到小数点后6位

-5.双精度型(double 或#)

  语法:dim  a  as  double (定义变量a作为双精度型) 或者    dim   a#

  注意:double 精确到小数点后14位

###在 Sheet1 工作表 A1 单元格,写入 “Hello World” 内容

Sub MyCode()
    Sheet1.Range("A1") = "Hello World"
    '图形化显示hello world
    MsgBox "Hello World"  
End Sub

在这里插入图片描述
在这里插入图片描述

变量

####定义变量的时候可以不指定数据类型  Dim AAA
Dim [变量名] As [数据类型]
Dim name As String
Dim age As Integer

[变量名] = [数据]    ###变量赋值
Dim name As String
name = "张三"
Range("A1") = name

######声明常量
Const [常量名] As [数据类型] = []
'声明 π 常量
Const Pi As Double = 3.14159


  • 赋值运算符 =
  • 算术运算符 + - * / 、\(取除数) 、Mod(取余) ^ -(取负)
  • 比较运算符 = (等于)、> (大于)、>= (大于等于)、< (小于)、<=(小于等于)、 <>(不等于)
  • 逻辑运算符 And Or Not Xor
  • 连接操作符 &-连接两个文本

声明一个文本类型变量,String是类型标识符;文本需使用英文双引号表示。name = "Zhang San"
声明一个逻辑变量 : Dim isPass As Boolean
给逻辑变量赋值时,可以直接使用逻辑值,也可以使用返回逻辑值的表达式 isPass = False ; isPass = 70 >= 60

Sub ProcessRange(ByVal Target As Range) ByVal Target As Range :当你调用这个函数或子程序时,你需要提供一个已经存在的范围对象,如选定的单元格、特定地址或一个已定义的工作表区域,作为参数传入;也就是用鼠标选择操作范围
ByVal Target As Range 是 Visual Basic for Applications (VBA) 中的一条声明语句,用于指定一个名为 Target 的变量类型为 Range。

循环

exit do '只能写在do循环里面
exit for '只能写在for循环里面
exit sub '只能写在sub循环里面

  • 1. For 循
For [变量] = [初始值] To [结束值] Step [步长]
    '这里是循环执行的语句
Next

#####For 至 Next i 之间的代码就是一个循环代码

#######在 A2:A10 单元格区域,依次判断每一个单元格是否为空,如果是空,则用上一个单元格的值填充
Sub MyCode()
    Dim i As Integer
    Dim isBlank As Boolean
    For i = 2 To 10
        isBlank = Cells(i, 1).Value = ""
        If isBlank Then
            Cells(i, 1) = Cells(i - 1, 1)
        End If
    Next i
End Sub
Sub Test111()
Dim i
    For i = 1 To 10
        Cells(i, 2) = "11" & i & "DDDDD"
        Cells(i, 3).Value = "11" & i & "DD"   ##这两种写法都可以
    Next i
End Sub

for each 循环一般用于循环一个集合,比如一个工作表,一个工作簿,或者是一个文件夹
在这里插入图片描述

###显示当前工作簿的所有工作表的名称

Sub testdemo1()
Dim ws As Worksheet   #定义变量类型
For Each ws In Worksheets   #遍历工作表
  MsgBox ws.Name   '显示当前的工作表名称
Next ws
End Sub


遍历工作簿
Sub test()
Dim a as WorkBook
For Each a in WorkBooks
	内容
Next
End Sub


遍历工作表
Sub test()
Dim a as WorkSheet
For Each a in WorkSheets
	内容
Next
End Sub

遍历单元格(CurrentRegion)
Sub test()
Dim a as Range
for Each a in Range("a1").CurrentRegion
	内容
Next
End Sub

遍历单元格(UsedRange)
Sub test()
Dim a as Range
for Each a in ActiveSheet.UsedRange
	内容
Next
End Sub

###将下列分数85分以上的分数变成红色
Sub test()
Dim a As Range
Dim lastrow As Long
#找到数据的边界
lastrow = Cells(Rows.Count, "b").End(xlUp).Row
#通过&将列和行列连接
For Each a In Range("b2:b" & lastrow)
    If a.Value >= 85 Then
        a.Interior.ColorIndex = 3
    End If
Next a
End Sub

  • 2. Do While 循环
Do While [条件表达式]
    '循环执行的代码
Loop
  • Do Until 循环
Do Until [条件表达式]
    '循环执行的代码
Loop

Exit For 跳出 For 循环
Exit Do 跳出 Do While/Until 循环

选择语句

  • If … Then 结构
If 条件表达式 Then
    '表达式为真时,执行的代码
End If
  • If … Else 结构
If 条件表达式 Then
    '真时执行的代码
Else
    '假时执行的代码
End If
  • If ElseIf Else 结构
If 条件表达式1 Then
    '表达式1真时,执行的代码
ElseIf 条件表达式2 Then
    '表达式2真时,执行的代码
ElseIf 条件表达式3 Then
    '表达式3真时,执行的代码
    ...
ElseIf 条件表达式n Then
    '表达式n真时,执行的代码
Else
    '以上表达式都不为真时,执行的代码
End If
  • Select Case 结构
Select Case 变量
	Case 判断条件 1
    	'条件 1 真时,执行的代码
	Case 判断条件 2
    	'条件 2 真时,执行的代码
	Case 判断条件 3
    	'条件 3 真时,执行的代码
    Case Else
    	'之前的所有条件都不为真时,执行的代码
End Select

with语句

With 结构用于组合同一个对象的多个属性和方法,避免重复写同一个对象名,提高编程和运行效率

With [对象]
    .[属性] = [数据]
    .[方法]
    '其他属性和方法
End With
'设置单元格字体、字号和颜色

With Range("A1").Font
    .Bold = True
    .Name = "微软雅黑"
    .Size = 15
    .Color = vbRed
End With

go to语句

使用 GoTo 结构,跳转到指定标签处运行,从而不执行 GoTo 语句和指定标签之间的代码

Sub MyCode()

    Dim num1 As Double
    Dim num2 As Double
    Dim result As Double
    num1 = 100
    num2 = 0
    If num2 = 0 Then GoTo error
    result = num1 / num2
    Exit Sub
error:
    MsgBox "除数不能为零"

End Sub

常用

1. 获取各个sheet名字
#####获取Excel工作簿中所有sheet的名称,并写到当前sheet中
Sheets.Count ###统计sheet个数

Sub PrintSheetNamesToSheet()
Cells(1, 1).Value = "Name"
'print the number of sheet
MsgBox Sheets.Count
For i = 1 To Sheets.Count
    Cells(i + 1, 1).Value = Sheets(i).Name
Next i
End Sub

2. sheet操作
可以声明个对象,然后用变量去操作sheet表。

Set [变量名] = [对象类型数据]

###声明工作表类型的对象
Dim sheet As Worksheet   ###把变量声明成Worksheet 对象,表示工作表对象
###名称为“绩效表”的工作表,赋到 sheet 变量
Set sheet = Worksheets("绩效表")  ### sheet就表示“绩效表”这个sheet表,然后用sheet就可以操作了

Dim sheet As Worksheet
Set sheet = Worksheets("绩效表")

With sheet
    .Name = "旧绩效"
    .Visible = False
End With

2.1 sheet显示和隐藏

     Sheet5.Visible = xlSheetVeryHidden  ### 第五个sheet隐藏起来
     Sheet5.Visible = xlSheetVisible     ### 第五个sheet显示起来

2.2 获取当前sheet的名称和位置

sheetIndex = ActiveSheet.index
sheetName = ActiveSheet.Name

MsgBox ActiveSheet.Index & "  " & ActiveSheet.Name  ### 打印出索引和当前在看的(上次保存退出)的sheet 名字

在这里插入图片描述
2.3 添加一个sheet
常用 Excel 对象

  • Application 对象,表示 Excel 应用程序。
  • Workbook 对象,表示工作簿对象。
  • Worksheet 对象,表示工作表对象
  • Range 对象,表示单元格区域对象。
'语法;;声明对象
'前期绑定声明语法
Dim [变量名] As [对象类型]
'后期绑定声明语法
Dim [变量名] As Object

'实例
Dim sh As Worksheet
Dim car As Object

#####创建新sheet并重命名

Sub PrintSheetNamesToSheet()
    Dim w2 As Worksheet
    Set w2 = Worksheets.Add
    w2.Name = "jisuanji22"
    w2.Cells(1, 1) = "new"
End Sub

2.4 修改某个sheet内容

Sub PrintSheetNamesToSheet()
    Dim w2 As Worksheet
    Set w2 = Worksheets("Sheet2")
    w2.Cells(1, 1) = "s2"
End Sub

或者
Sheets("jisuan").Cells(1, 2) = "hello"  ##指定sheet名字,进行赋值

2.2 获取当前sheet的名称和位置

2.2 获取当前sheet的名称和位置

3. 获取最后一行行号
#####获取当前打开的sheet 一共多少行内容

    Dim sheetIndex As Integer
    lastRow = Sheets(ActiveSheet.Name).UsedRange.Rows.Count
    MsgBox lastRow

4. 指定行插入一行空行
Sheets(ActiveSheet.Name).Rows(3).Insert ###当前sheet 第三行插入一个空行

5. 删除多行
Sheets(ActiveSheet.Name).Rows("3:4").Delete ###删除当前sheet 第三至第四行
Sheets(ActiveSheet.Name).Rows("3").Delete ###删除当前sheet 第三行;下一行会上移

Sheets(ActiveSheet.Name).Range("A2:B3").Clear ###清空当前sheet A2:B3的内容;单元格还在
Sheets(ActiveSheet.Name).Range("A2:B3").ClearContents ###清空当前sheet A2:B3的内容;单元格还在

6. 单元格操作

6.1 当前sheet单元格操作

Sub PrintSheetNamesToSheet()
    Cells(1, 1).Value = "Name"  ##方式一,第一行第一列单元格值是Name
    Dim s As String
    s = "Hello World"
    Range("A2").Value = s  ##方式二,第一行第二列单元格值是Hello World
    Range("A2").Interior.Color = 49407 ##单元格填充橙色
    Cells(1, 1).Interior.Pattern = xlNone  ##清空单元格颜色
    Cells(1, 3).Interior.Color = vbGreen  ##设置单元格填充颜色   vbRed   vbBlack
    Rows(1).HorizontalAlignment = xlRight  ##整行设置成右对齐
End Sub
###########设置单元格字体、字号和颜色
    With Range("A1").Font
        .Bold = True
        .Name = "Times New Roman"
        .Size = 15
        .Color = vbRed
     End With
        
######写数字表示行;写字母表示列
Rows("2:3")  第二行至第三行
Range("4:5,7:8") 第4行至第5行,第7至第8
Columns(1)  第1列
Columns("b:c")   第b-c列 
Range("d:e,g:h") 第d列至第e列,第g至第h

6.2 不同sheet单元格

Sheet2.Cells(1, 1) = "hello"  ##第二个sheet表中第一行第一列插入数值
Sheets("jisuan").Cells(1, 2) = "hello"  ##指定sheet名字,进行赋值


Sheets("jisuan").Sheets(1).Cells(row01, 1).RowHeight = 40  ##'设置单元格行高
Sheets("jisuan").Sheets(1).Cells(row01, 1).ColumnWidth = 40 ##'设置单元格列宽
Sheets("jisuan").Sheets(1).Cells(row01, 1).Font.Size = 24   ##'设置字体大小
Sheets("jisuan").Sheets(1).Cells(row01, 1).Font.Name = "Times New Roman"  ##'设置字体类型
Sheets("jisuan").Sheets(1).Cells(row01, 3).Font.Color = vbRed  ##'设置字体颜色
Sheets("jisuan").Sheets(1).Cells(row01, 3).Font.Bold = True   ##'设置字体加粗
Sheets("jisuan").Sheets(1).Cells(row01, 3).Font.Italic = True   ##'设置字体倾斜
Sheets("jisuan").Sheets(1).Cells(row01, 1).HorizontalAlignment = xlCenter  ##'设置水平对齐方式,类型有xlLeft,xlRight,xlLeft
Sheets("jisuan").Sheets(1).Cells(row01, 1).VerticalAlignment = xlCenter  ##'设置垂直对齐方式
Sheets("jisuan").Sheets(1).Cells(row01, 1).Borders.LineStyle = xlContinuous  ##'设置边框类型为实线,全框
Sheets("jisuan").Sheets(1).Cells(row01, 1).Borders.Color = RGB(0, 0, 0)  ###'设置边框颜色

6.3 判断单元格是否为空

1. Cells(1, 1) = "" 或 Range("A1")= ""
2. Len(Cells(1, 1)) = 0 或Len(Range("A1"))= 0
3. Cells(i, 1) = vbNullString 或Range("A1")= vbNullString
4. Application.WorksheetFunction.CountBlank(Cells(1,1))
5. 为了防止单元格中有空格,可以使用:
Len(Trim(Cells(i, 1))) = 0


Len函数是返回字符个数,结果是自然数,所以所有的都满足<>""。就改为,以下几种:
If Len(Sheets("sheet1").Cells(i, 10)) <> 0 Then
If Sheets("sheet1").Cells(i, 10) <> "" Then
If not istmpty(Sheets("sheet1").Cells(i, 10)) Then

7. 图形化输入

Length = InputBox("please input", "dddd")
ddd 是输入框头
please 是提示


Sub PrintSheetNamesToSheet()
    Add = InputBox("please add Overtime hours(h)", "Overtime hours")
    b = Split(Add, ",")
    Cells(7, 3) = b(0)
    Cells(8, 3) = b(1)
End Sub

在这里插入图片描述

Sub PrintSheetNamesToSheet()
Dim note01 As String
Dim num01 As String
note01 = "please input data"
name01 = Application.InputBox(prompt:=note01, Title:=note01)
End Sub

在这里插入图片描述
8. 函数/Sub调用

8.1 函数调用

Sub AAA()
    Dim x, y, z
    x = Cells(1, 1)
    y = Cells(1, 2)
    z = Summary(x, y)
    Cells(1, 3) = z
End Sub
 
Function Summary(a, b)
    Summary= a + b
End Function

8.2 Sub调用
用Call

Sub BBBB()
    Dim x, y, z
    x = Cells(1, 1)
    y = Cells(1, 2)
    Call SummaryA(x, y)
End Sub
 
Sub SummaryA(a, b)
    Cells(1, 3) = a + b
End Sub

内置函数

Format:格式化数据,并以文本类型返回
InStr:返回指定字符的位置
InStrRev:反方向返回指定字符位置
Left:返回左侧指定长度文本
Len:返回文本长度
LCase:大写字母转换成小写字母
LTrim:清除开头的空格
Mid:返回指定的开始和结束位置之间的文本
Replace:替换文本中的指定字符
Right:返回右侧指定长度文本
RTrim:清除末尾处的空格
Space:返回指定重复数的空格文本
StrComp:返回比较两个文本的结果
StrConv:将文本转换成指定格式
String:返回指定重复数的文本
StrReverse:逆转提供的字符串
Trim:清除开头和结尾处的空格
UCase:将小写字母转换成大写字母

=COUNTIF(A:A,"Y")  ###统计a列中有多少个Y
  • contains字符串是否包含
Sub PrintSheetNamesToSheet()
    If InStr(Range("A2").Value, "zhangsan") <> 0 Then
        MsgBox "11111"
    Else
        MsgBox "2222"
    End If
End Sub

######方式二
str = "Hello World"
substring = "llo"
result = InStr(str, substring)
 
If result > 0 Then
    MsgBox "字符串包含指定的子字符串"
Else
    MsgBox "字符串不包含指定的子字符串"
End If

######方式三
str = "Hello World"
substring = "*llo*"
result = str Like substring
If result Then
    MsgBox "字符串包含指定的子字符串"
Else
    MsgBox "字符串不包含指定的子字符串"
End If
  • 字符串截取
####'提取第二个字符开始之后的3个字符
Sub PrintSheetNamesToSheet()
  MsgBox Mid(Cells(2, 1).Value, 2, 4) 
End Sub

MsgBox Left(Cells(2, 1).Value, 1) ###//获取第二行第一列字符串的首字符

功能

检索工具

sheet1中存放原始数据,在sheet2 写入要搜索的内容,结果写到sheet3
在这里插入图片描述
在这里插入图片描述

Dim sht1 As Worksheet, sht2 As Worksheet, sht3 As Worksheet
Dim maxRow1 As Integer, maxRow2 As Integer, maxRow3 As Integer

Set sht1 = ThisWorkbook.Sheets("sheet1_name") ###下面调用就可以用sht1代替
Set sht2 = ThisWorkbook.Sheets("sheet2_name")
Set sht3 = ThisWorkbook.Sheets("sheet3_name")
####第一个sheet的第一行行数
maxRow1 = sht1.Cells(Rows.Count, 1).End(xlUp).Row 
####第一个sheet的第2行行数
max1Row2 = sht1.Cells(Rows.Count, 1).End(xlUp).Row 
####第2个sheet的第一行行数
maxRow2 = sht2.Cells(Rows.Count, 1).End(xlUp).Row 
####第3个sheet的第一行行数
maxRow3 = sht3.Cells(Rows.Count, 1).End(xlUp).Row 
sht3.Rows("2:" & maxRow3).ClearContents '清空【结果表】上次留存结果,保留抬头行

################正式代码

Sub SearchContentToSheet()
    Dim sht1 As Worksheet, sht2 As Worksheet, sht3 As Worksheet
    Dim maxRow1 As Integer, maxRow2 As Integer, maxRow3 As Integer

    Set sht1 = ThisWorkbook.Sheets("Sheet1")
    Set sht2 = ThisWorkbook.Sheets("Sheet2")
    Set sht3 = ThisWorkbook.Sheets("Sheet3")

    maxRow1 = sht1.Cells(Rows.Count, 2).End(xlUp).Row
    maxRow2 = sht2.Cells(Rows.Count, 1).End(xlUp).Row
    maxRow3 = sht3.Cells(Rows.Count, 1).End(xlUp).Row
    sht3.Rows("2:" & maxRow1).ClearContents
    For k = 1 To maxRow2
        Search_Key = sht2.Cells(k, 1).Value
        For i = 2 To maxRow1
            Orgi_Key = sht1.Cells(i, 1).Value
            result = InStr(Orgi_Key, Search_Key)
            If result > 0 Then
                sht3.Rows(k) = sht1.Rows(i).Value
            End If
        Next
    Next
End Sub

在这里插入图片描述

选择的数据颜色标记

1. 鼠标选择的地方,字体都会标记绿色

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Target.Font.Color = vbGreen
End Sub


If Target.Count > 1 Then Exit Sub ##当选中的单元格超过1个,就是退出这个函数,即Exit Sub
Dim rng As Range  ##定义rng为一个Range,Range可表示一个单元格、一行、一列或者包含一个或多个连续单元格块的选择
If Target.Count = 1 And Target <> "" Then ##当选中的单元格为1个,且(AND代表条件“与”)选中单元格值不为空(“<>”表示不等于)

在这里插入图片描述

2. 鼠标选择的地方,单元格都会标记红色

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Target.Font.Color = vbGreen
  Target.Interior.ColorIndex = 3
End Sub

Target.Value  ## 单元格内容

在这里插入图片描述
在这里插入图片描述

3. 鼠标选择的单元格对应的行和列进行高亮

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Cells.Interior.Pattern = xlNone ##清除颜色
    Selection.EntireRow.Interior.ColorIndex = 3  ##行颜色是红色
    Selection.EntireColumn.Interior.ColorIndex = 4 ##列颜色是绿色
End Sub

4. 鼠标点哪,哪一行高亮成红色,5s后再恢复成原先的颜色

Dim TarGett_AA As Integer
Sub Worksheet_SelectionChange(ByVal Target As Range)
    TarGett_AA = Target.Interior.ColorIndex ##获取单元格颜色
    Selection.EntireRow.Interior.Pattern = xlNone
    Selection.EntireRow.Interior.ColorIndex = 3
    Application.Wait Now + TimeValue("00:00:5")
    If TarGett_AA >= 0 Then
        Selection.EntireRow.Interior.ColorIndex = TarGett_AA
    End If
End Sub

5. 鼠标点哪,哪个区域高亮,5s后再恢复成原先的颜色

Dim TarGett_AA As Integer, Col_Num As Integer
Sub Worksheet_SelectionChange(ByVal Target As Range)
    TarGett_AA = Target.Interior.ColorIndex
    Target_Index = Target.Address(0, 0)  ##获取单元格的名称C4或者A1:C6
    Target_Row_Index = ActiveCell.Cells.Row  ##获取选中单元格的行编号  数值
    Target_Col_Index = Target.Column      ##获取选中单元格的列编号  数值;也可也这么写ActiveCell.Cells.Column
    Range(Target_Index).Interior.ColorIndex = 3  ##选中范围,背景改为红色
    Application.Wait Now + TimeValue("00:00:5")  ##停5s
    If TarGett_AA >= 0 Then
        Range(Target_Index).Interior.ColorIndex = TarGett_AA
    Else
        Range(Target_Index).Interior.Pattern = xlNone
    End If
End Sub

 #Cells.EntireRow.Interior.Pattern = xlNone
 #Selection.EntireRow.Interior.Pattern = xlNone
 #Selection.EntireRow.Interior.ColorIndex = 3
 #Selection.EntireRow.Interior.ColorIndex = TarGett_AA
 #Selection.EntireRow.Interior.Pattern = xlNone

Range("B2:E6")(3).Select : 选取B2:E6区域中的第三个单元格,即D2; 单元格的区域的读取一般是从左到右,然后再从上到下进行读取的,故该区域的前3个单元格分别是B2、C2、D2,而第3个单元格就是为D2。

常见问题

编写代码出现"请注意 文档的部分内容可能包含文档检查器无法删除的个人信息"
在这里插入图片描述
解决方案:禁止显示 Application.DisplayAlerts = False
恢复显示Application.DisplayAlerts = True

word处理

关闭屏幕刷新 Application.ScreenUpdating = False
禁止显示请注意 Application.DisplayAlerts = False

    Dim WordApp As Object
    Set WordApp =CreateObject("Word.Application")    '新建Word对象
     Wordapp.Visible = True                    '可见
    'Wordapp.ScreenUpdating =False             '屏幕刷新
    Dim WordD As Word.Document      '定义word类
    Set WordD = Wordapp.Documents.Add                  '新建文档
    'Set WordD = Wordapp.Documents.open(filename)          '打开文档
    '……
    WordD.Close                         '关闭文档
    Set WordD = Nothing
    WordApp.Quit                        '退出Word对象

Dim MyDialog As FileDialog, vrtSelectedItem As Variant, Doc As Document
Dim NewName As String, thisPath As String
'定义一个文件夹选取对话框
Set MyDialog = Application.FileDialog(msoFileDialogFilePicker)
With MyDialog
    .Filters.Clear '清除所有文件筛选器中的项目
    .Filters.Add "所有 WORD 文件", "*.doc", 1 '增加筛选器的项目为所有WORD文件
    .AllowMultiSelect = True '允许多项选择
    If .Show = -1 Then '确定
        myPas = InputBox("请输入替换成的编号:")
        Application.ScreenUpdating = False
        Set Doc = Nothing  '释放变量

1111

2222

3333

4444

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值