VBA代码碎片

1.获取用户桌面路径

Sub getDesktop()
' 声明变量
Dim WshShell As Object
Dim desktop  As String

'创建shell对象
Set WshShell = CreateObject("WScript.Shell")
desktop = WshShell.SpecialFolders("Desktop")

' 输出结果
MsgBox desktop

End Sub

2.判断文件或文件夹是否存在

Public Function FileFolderExists(strFullPath As String) As Boolean
 
    On Error GoTo EarlyExit
    If Not Dir(strFullPath, vbDirectory) = vbNullString Then FileFolderExists = True
EarlyExit:
    On Error GoTo 0
 
End Function

判断文件夹是否存在:
Public Sub TestFolderExistence()
 
    If FileFolderExists("c:/windows/") Then 
        MsgBox "指定的文件夹存在!" 
    Else 
        MsgBox "指定的文件夹不存在!" 
    End If
 
End Sub

判断文件是否存在:
Public Sub TestFileExistence()
 
    If FileFolderExists("d:/Book1.xls") Then 
        MsgBox "指定的文件存在!" 
    Else 
        MsgBox "指定的文件不存在!" 
    End If
 
End Sub


3.创建目录,删除目录,切换目录

Sub getDesktop()
' 声明变量
Dim WshShell As Object
Dim desktop  As String
Dim cur_dir

' 当前文件路径
cur_dir = CurDir$
MsgBox "当前文件夹是:" & cur_dir


'创建shell对象
Set WshShell = CreateObject("WScript.Shell")
' 获取桌面路径
desktop = WshShell.SpecialFolders("Desktop")

ChDir desktop ' 切换路径
cur_dir = CurDir$
MsgBox "当前文件夹是:" & cur_dir


' 在桌面新建文件夹(不存在就创建)
Dim file_path As String

file_path = desktop & "\wyh_files\wyh_test_open.txt"
Debug.Print file_path

Dim result

result = Dir(file_path) '判断文件是否存在

If Dir(file_path) = "" Then
Debug.Print "文件不存在"
MkDir (desktop & "\mail")
Else
MsgBox desktop & "\wyh_files" & "路径存在!!!"
If Dir(desktop & "\mail") = "" Then
MsgBox "谢谢!!!"
MkDir (desktop & "\mail")

Else
RmDir (desktop & "\mail")
End If

End If
End Sub

4.删除行一般从下往上删(避免漏处理)

Sub writeCell()
Dim i As Integer

On Error GoTo baseError
For i = 50 To 1 Step -1
    ' 处理性别
    If Range("d" & i) = "F" Then '
    Range("c" & i) = "先生"
    ElseIf Range("d" & i) = "M" Then
    Range("c" & i) = "女士"
    End If
    
    ' 删除姓名为空的行
    If Range("a" & i) = "" Then
        Range("a" & i).Select
        Selection.EntireRow.Delete
    End If
    
    
Next
baseError:
     On Error GoTo 0

End Sub

5.新建文本并写入数据

Sub createFile()

' 声明变量
Dim WshShell As Object
Dim desktop  As String
Dim fileName As String
Dim file_path As String

'创建shell对象
Set WshShell = CreateObject("WScript.Shell")
desktop = WshShell.SpecialFolders("Desktop")

'定义新建的文本存放路径和文本名
fileName = "runJob.sh"
file_path = desktop & "\" & fileName


' 以读写方式打开文件,每次写内容都会覆盖原先的内容
Open file_path For Output As #1

' 一行一行往文本里写入数据
Print #1, "#!/bin/bash"
Print #1, "echo 'hello world!!!'"
Close #1 '关闭文本


End Sub

6.获取激活工作表名字

Sub getName()
Dim s As String

s = ActiveSheet.Name
MsgBox s

End Sub

7.工作簿操作(打开,新建,另存为)

Sub workSheetOperation()

Dim ssheet As Worksheet

Application.ScreenUpdating = False  ' 关闭屏幕更新
Application.DisplayAlerts = False   ' 关闭弹窗

' 删除工作表
For Each ssheet In Sheets
    If ssheet.Name <> "hello" Then
        ssheet.Delete
    End If
Next

'工作簿操作
' 打开已经存在的文件
Workbooks.Open ("C:\Users\wyh\Desktop\AIYI\hadoop\vbaDemo\001.xls") ' 打开工作簿
ActiveWorkbook.Sheets(1).Range("a1") = "hello world!"                ' 对激活工作簿的表1进行操作
ActiveWorkbook.Save                                                 ' 保存
ActiveWorkbook.Close                                                ' 关闭

' 新建工作簿
Workbooks.Add
ActiveWorkbook.Sheets(1).Range("a1") = "hello world!"                ' 对激活工作簿的表1进行操作
ActiveWorkbook.SaveAs Filename:="C:\Users\wyh\Desktop\AIYI\hadoop\vbaDemo\002.xls"
ActiveWorkbook.Close                                                ' 关闭


'将一个工作簿里的多个sheet另存为

For Each ssheet In Sheets
    ssheet.Copy
    ActiveWorkbook.SaveAs Filename:="C:\Users\wyh\Desktop\AIYI\hadoop\vbaDemo\" & ssheet.Name
    ActiveWorkbook.Close
Next


Application.ScreenUpdating = True
Application.DisplayAlerts = True


End Sub

8.处理每个sheet的逻辑

Sub opeateWorkBook()
Dim ssheet As Worksheet
Dim rng As Range
Dim i, j As Integer

Application.ScreenUpdating = False
Application.DisplayAlerts = False


' 循环处理每个sheet
For Each ssheet In Sheets
    i = i + 1
    MsgBox "sheet" & i
    ssheet.Select
    
    ' 循环处理每个单元格
    For Each rng In Range("a1:a10")
        j = j + 1
        Range("a" & j) = j
    
        MsgBox "单元格" & j
    
    Next

Next


Application.ScreenUpdating = False
Application.DisplayAlerts = False



End Sub

9.循环将数据拷贝到对应的sheet

Sub rangeLearning()

' 定义变量
Dim i, j, m, n As Integer

' 定义sheet个数
Dim cnt As Integer
cnt = Sheets.Count

MsgBox "工作簿有" & cnt & "个sheet"

For i = 2 To cnt

    ' 定义sheet1数据行数
    
    Dim row_cnt As Integer
    row_cnt = range("a65536").End(xlUp).Row
    MsgBox "sheet1有" & row_cnt & "行数据"
    
    ' 循环判断所有数据行
    For j = 2 To row_cnt
    
        ' 判断数据该拷贝到哪个sheet内
        If Sheet1.range("d" & j) = Sheets(i).Name Then
        
            ' 将数据拷贝到对应sheet
            m = Sheets(i).range("a65536").End(xlUp).Row
            Sheet1.range("d" & j).EntireRow.Copy Sheets(i).range("a" & m + 1)
        End If
        
    Next
Next



End Sub

10.拆分表个并拷贝数据

Sub createNewSheet()
Dim sht As Worksheet
Dim k As Integer
Dim cnt As Integer
Dim col As Integer
Dim sht0 As Worksheet




col = InputBox("请输入按第几列拆分表", "拆-----分-----表")
Set sht0 = ActiveSheet

' 清理已经拆分出来的表
Application.DisplayAlerts = False
Application.ScreenUpdating = False
If Sheets.Count > 1 Then
    
    Dim ssheet As Worksheet
    
    For Each ssheet In Sheets
    
        If ssheet.Name <> sht0.Name Then
            ssheet.Delete
        End If
    
    Next

End If
Application.DisplayAlerts = True

cnt = sht0.Range("a65536").End(xlUp).Row ' 数据行数

' 拆分表
For i = 2 To cnt
    k = 0
    For Each sht In Sheets
        ' 判断表是否存在,并做标记
        If sht.Name = sht0.Cells(i, col) Then
            k = 1
        End If
    Next
    
    If k = 0 Then
        ' 新建表
        Sheets.Add after:=Sheets(Sheets.Count)
        Sheets(Sheets.Count).Name = sht0.Cells(i, col)
    End If
    
    
Next

' 拷贝数据
For j = 2 To Sheets.Count
    'field 代表根据第几列筛选,Criteria1筛选条件
   sht0.Range("a1:z" & cnt).AutoFilter field:=col, Criteria1:=Sheets(j).Name
   sht0.Range("a1:z" & cnt).Copy Sheets(j).Range("a1")
    
Next

sht0.Range("a1:z" & cnt).AutoFilter

sht0.Select

MsgBox "拆分表已经完成(☆_☆)人丑就要多读书"
        
        


End Sub

12.获取使用的表格行数,列数

Sub mysub()
	' 使用的列数
	
    LastCol = ActiveSheet.UsedRange.Columns.Count
    Sheet1.UsedRange.Columns.Count

    ' 使用的行数
    LastRow = ActiveSheet.UsedRange.Rows.Count
    Sheet1.UsedRange.Rows.Count

End Sub

13.选中的单元整行颜色自动加重

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

' 选中的单元整行颜色加重
Cells.Interior.Pattern = xlNone
Selection.EntireRow.Interior.Color = 65535

End Sub

14.自动筛选

Private Sub Worksheet_Change(ByVal Target As Range)
' 自动筛选

' 操作时关闭事件
Application.EnableEvents = False

' 拷贝数据前清空位置
Range("l1:q63356").ClearContents

' 筛选指定数据
Range("a1:f100").AutoFilter field:=3, Criteria1:=Range("i2").Value

' 将筛选出的数据拷贝到指定位置

Range("a1:f100").Copy Range("l1")
Range("a1:f100").AutoFilter

Application.EnableEvents = True


End Sub

15.自动刷新表

Private Sub Worksheet_Activate()

' 自动刷新工作表
ActiveWorkbook.RefreshAll

End Sub

16.格式设置语句

Sub mysub()

' 格式设置语句
    With Sheet1
        .Range("a1").Font.Size = 18
        .Range("a1").Font.Color = 45536
    
    End With
    
End Sub

17.自动备份表格

Private Sub Workbook_Open()
' 声明变量
Dim WshShell As Object
Dim desktop  As String
Dim path As String

'创建shell对象
Set WshShell = CreateObject("WScript.Shell")
desktop = WshShell.SpecialFolders("Desktop")

path = ThisWorkbook.Path

ThisWorkbook.SaveCopyAs desktop & "\" & Format(Now(), "yyyymmddhhmmss") & ".xlsm"
ThisWorkbook.SaveCopyAs path& "\" & Format(Now(), "yyyymmddhhmmss") & ".xlsm"

End Sub

18.合并工作簿

Sub dirDemo()
Dim i As Integer
Dim str As String
Dim wb As Workbook
Dim sht As Worksheet


' 获取文件夹内的excel文件

str = dir("C:\Users\wyh\Desktop\wyh_files\*.xls*")

For i = 1 To 10 Step 1

    
    ' 打开文件夹内的工作簿

    Set wb = Workbooks.Open("C:\Users\wyh\Desktop\wyh_files\" & str)
    
    ' 循环每个工作簿
    
    For Each sht In wb.Sheets
    
        ' 复制每个sheet
        
        sht.Copy after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
        ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Name = Split(wb.Name, ".")(0) & sht.Name
    
    
    Next
    
    
    wb.Close
    
    
    str = dir()
    
    If str = "" Then
        Exit For
        
    End If


Next


End Sub

19.计时器

Sub timerSub()
t = timer

' 中间工程代码


 t = timer - t
 
 MsgBox "程序运行了" & t & "秒!"

End Sub

20.数组应用(计算速度快)

在这里插入图片描述

Sub arrDemo()
Dim i, col As Long

' 定义数组
Dim arr()

row_cnt = Range("a65536").End(xlUp).Row - 1

ReDim arr(1 To row_cnt)
    
' 将计算结果放入数组
For i = 1 To row_cnt
    arr(i) = Range("b" & i + 1) * Range("c" & i + 1)
Next

' 取出数组里的最大值
Range("h3") = Application.WorksheetFunction.Max(arr)

' 匹配最大值所对应的行
Range("h2") = Range("a" & Application.WorksheetFunction.Match(Range("h3"), arr, 0) + 1)


' 获取数组最大和最小边界
MsgBox "数组下边界" & LBound(arr)
MsgBox "数组上边界" & UBound(arr)

End Sub

21.textbox和listbox控件应用

在这里插入图片描述

Private Sub ListBox1_Click()
    Me.TextBox1.Value = Me.ListBox1.Value
    Me.ListBox1.Visible = False
End Sub

Private Sub TextBox1_Change()
If Len(Me.TextBox1.Value) > 4 Then
    Me.ListBox1.Clear
    For i = 2 To 10
        If InStr(Sheet1.Range("i" & i), Me.TextBox1.Value) > 0 Then
            Me.ListBox1.AddItem Sheet1.Range("i" & i)
        End If
    Next
    If Me.ListBox1.ListCount > 0 Then
        Me.ListBox1.Visible = True
    Else
         Me.ListBox1.Visible = False
    End If
    
Else

    Me.ListBox1.Visible = False
    
End If
    
    
End Sub

22.打开多文件

Sub open_excel_files()
Dim arr()
Dim i As Integer
Dim wb, wb1 As Workbook
Dim sht As Worksheet

On Error Resume Next
Set wb1 = ActiveWorkbook
' Set wb1 = ActiveWorkbook
Set sht1 = ActiveSheet

On Error Resume Next
' 打开多文件的数组
arr = Application.GetOpenFilename("Excel数据文件,*.xls*", , , , True)
     ' 循环打开文件并处理
    For i = LBound(arr) To UBound(arr)
        
        Set wb = Workbooks.Open(arr(i))
        ' 合并选中的文件
        For Each sht In wb.Sheets
            sht.Copy after:=wb1.Sheets(wb1.Sheets.Count)
            wb1.Sheets(wb1.Sheets.Count).Name = Split(wb.Name, ".")(0) & sht.Name
        Next
        wb.Close
    Next


End Sub

23.使用ADO操作外部数据


Sub test()
' 使用前请确认是否勾选了Microsoft ActiveX Data Object  x.x  Library!!!
Dim conn As New ADODB.Connection
Dim sql As String
' 注意这个链接文件的路径!!!需要把edata文件放入d:\data文件夹!!

Range("a2:z1000").ClearContents
conn.Open "Provider = Microsoft.ACE.OLEDB.12.0;Data Source=D:\data\Edata.xlsx;extended properties=""excel 12.0;HDR=YES"""

sql = "select a.姓名,年龄,性别,月薪 from (select * from [data$] union all select * from [data2$])a left join [data3$] on a.姓名=[data3$].姓名"

Range("a2").CopyFromRecordset conn.Execute(sql)

conn.Close
End Sub
Excel文件

Dim conn As New ADODB.Connection
conn.Open "Provider = Microsoft.ACE.OLEDB.12.0;Data Source=D:\data\Edata.xlsx;extended properties=""excel 12.0;HDR=YES"""
conn.Close

ACCESS文件
conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\data\Adata.accdb"

Mysql数据库
conn.Open  "Provider=SQLOLEDB;DataSource=" & Path & ";Initial Catolog=" & strDataName


MSSQL数据库
conn.Open  "Provider=MSDASQL;Driver={SQL Server};Server=" & Path & ";Database=" & strDataName

Oracle数据库
conn.Open  "Provider=madaora;Data Source=MyOracleDB; User Id=UserID; Password=Password"

24.按位置插入并调整图片
在这里插入图片描述

Sub test()
On Error Resume Next
Dim shp, shp1 As Shape

For Each shp1 In Sheet1.Shapes
    shp1.Delete
Next

For i = 2 To 12
Set shp = Sheet1.Shapes.AddPicture("d:\data\" & Range("a" & i) & ".jpg", msoFalse, msoCTrue, Range("d" & i).Left, Range("d" & i).Top, Range("d" & i).Width, Range("d" & i).Height)
shp.Placement = xlMoveAndSize
Next

End Sub

25.改文件名

Sub test()
Dim i As Integer

On Error Resume Next

For i = 2 To 12
Name "d:\data\" & Range("a" & i) & ".jpg" As "d:\data\" & Range("a" & i) & Range("d" & i) & ".jpg"
Next


End Sub

26.类方法与属性举例

' 类方法

Sub Sdelete(str As String)
Dim sht As Worksheet
    For Each sht In Sheets
        If sht.Name = str Then
            Application.DisplayAlerts = False
            sht.Delete
            Application.DisplayAlerts = True
        End If
    Next
End Sub


Sub Sadd(str As String)
Dim sht, sht1 As Worksheet
    For Each sht In Sheets
        If sht.Name = str Then
            k = k + 1
        End If
    Next
    
    If k = 0 Then
        Set sht1 = Sheets.Add
        sht1.Name = str
    End If

End Sub


Sub Add()

Sheets.Add after:=Sheets(Sheets.Count)



End Sub

' 类属性
Property Get Scount()

Scount = Sheets.Count
End Property

27.销售系统练习

在这里插入图片描述

Dim arr()
Dim ID As String
Dim DJ As Long



Private Sub CommandButton1_Click()



If Me.ListBox1.Value <> "" And Me.ListBox2.Value <> "" And Me.ListBox3.Value <> "" And Me.TextBox1 > 0 Then
Me.ListBox4.AddItem
Me.ListBox4.List(Me.ListBox4.ListCount - 1, 0) = ID
Me.ListBox4.List(Me.ListBox4.ListCount - 1, 1) = Me.ListBox1.Value
Me.ListBox4.List(Me.ListBox4.ListCount - 1, 2) = Me.ListBox2.Value
Me.ListBox4.List(Me.ListBox4.ListCount - 1, 3) = Me.ListBox3.Value
Me.ListBox4.List(Me.ListBox4.ListCount - 1, 4) = Me.TextBox1.Value
Me.ListBox4.List(Me.ListBox4.ListCount - 1, 5) = Me.TextBox1.Value * Me.Label2.Caption
Else

MsgBox "请正确选择商品"
End If


End Sub

Private Sub ListBox1_Click()
Dim dic
Set dic = CreateObject("Scripting.Dictionary")

For i = LBound(arr) To UBound(arr)
    If arr(i, 2) = Me.ListBox1.Value Then
        dic(arr(i, 3)) = 1
    End If
Next

Me.ListBox2.List = dic.keys
Me.ListBox3.Clear
Me.Label2.Caption = 0

End Sub

Private Sub ListBox2_Click()

Dim dic
Set dic = CreateObject("Scripting.Dictionary")

For i = LBound(arr) To UBound(arr)
    If arr(i, 2) = Me.ListBox1.Value And arr(i, 3) = Me.ListBox2.Value Then
        dic(arr(i, 4)) = 1
    End If
Next

Me.ListBox3.List = dic.keys
Me.Label2.Caption = 0


End Sub

Private Sub ListBox3_Click()

For i = LBound(arr) To UBound(arr)

    If arr(i, 2) = Me.ListBox1.Value And arr(i, 3) = Me.ListBox2.Value And arr(i, 4) = Me.ListBox3.Value Then
        ID = arr(i, 1)
        DJ = arr(i, 5)
    End If
Next

Me.Label2.Caption = DJ


End Sub

Private Sub UserForm_Activate()
Dim dic
arr = Sheet1.Range("a2:e" & Sheet1.Range("a65536").End(xlUp).Row)
Set dic = CreateObject("Scripting.Dictionary")

For i = LBound(arr) To UBound(arr)
    dic(arr(i, 2)) = 1
Next
Me.ListBox1.List = dic.keys
End Sub

28 转换文本编码格式

Sub WriteANSItoUTF8withoutBOM(strFile As String)
Set UTFStream = CreateObject("ADODB.Stream")
Set ANSIStream = CreateObject("ADODB.Stream")
Set BinaryStream = CreateObject("ADODB.Stream")



'ANSI
ANSIStream.Type = 2 'adTypeText
ANSIStream.Mode = 3 'adModeReadWrite
ANSIStream.Charset = "GB2312"
ANSIStream.Open
ANSIStream.LoadFromFile strFile


' UTFStream
UTFStream.Type = 2 'adTypeText
UTFStream.Mode = 3 'adModeReadWrite
UTFStream.Charset = "UTF-8"
UTFStream.Open
ANSIStream.CopyTo UTFStream

' BinaryStream
UTFStream.Position = 3 'skip BOM
BinaryStream.Type = 1 'adTypeTexts
BinaryStream.Mode = 3 'adModeReadWrite
BinaryStream.Open
UTFStream.CopyTo BinaryStream

'Strips BOM(first 3 bytes)
BinaryStream.SaveToFile strFile, 2
BinaryStream.Flush
BinaryStream.Close

End Sub

Sub createFile()

    ' 声明变量
    Dim WshShell As Object
    Dim desktop  As String
    Dim fileName As String
    Dim file_path As String
    
    
    On Error GoTo baseError
    
    '创建shell对象
    Set WshShell = CreateObject("WScript.Shell")
    desktop = WshShell.SpecialFolders("Desktop")
    
    ' 用户自定义文件目录ming
    
    FolderName = InputBox("桌面创建文件夹", "目录名称:")
    
    
    ' 创建文件夹之前先删除文件夹
    If Dir(desktop & "\" & FolderName, vbDirectory) <> "" Then
    
       
       Set fso = CreateObject("Scripting.FileSystemObject")
       Set folderObj = fso.getfolder(desktop & "\" & FolderName)
       folderObj.Delete
       
    End If
    
    
    MkDir desktop & "\" & FolderName
    
    
    
    
    
    '定义新建的文本存放路径和文本名
    fileName = "runJob.sh"
    file_path = desktop & "\" & FolderName & "\" & fileName
    
    
    ' 以读写方式打开文件,每次写内容都会覆盖原先的内容
    Open file_path For Output As #1
    
    ' 一行一行往文本里写入数据
    Print #1, "#!/bin/bash"
    Print #1, "echo 'hello world!!!'"
    Print #1, "echo 'hello world!!!'"
    Print #1, "echo 'hello world!!!'"
    Close #1 '关闭文本
    
    
    Call WriteANSItoUTF8withoutBOM(file_path)
    
baseError:
     On Error GoTo 0

End Sub


  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第1章 Range(单元格)对象 10 技巧1 单元格的引用方法 10 1-1 使用Range属性 10 1-2 使用Cells属性 11 1-3 使用快捷记号 11 1-4 使用Offset属性 12 1-5 使用Resize属性 12 1-6 使用Union方法 12 1-7 使用UsedRange属性 12 1-8 使用CurrentRegion属性 12 技巧2 选定单元格区域的方法 12 2-1 使用Select方法 12 2-2 使用Activate方法 12 2-3 使用Goto方法 12 技巧3 获得指定行、列中的最后一个非空单元格 12 技巧4 定位单元格 12 技巧5 查找单元格 12 5-1 使用Find方法 12 5-2 使用Like运算符 12 技巧6 替换单元格内字符串 12 技巧7 复制单元格区域 12 技巧8 仅复制数值到另一区域 12 8-1 使用选择性粘贴 12 8-2 直接赋值的方法 12 技巧9 单元格自动进入编辑状态 12 技巧10 禁用单元格拖放功能 12 技巧11 单元格格式操作 12 11-1 单元格字体格式设置 12 11-2 设置单元格内部格式 12 11-3 为单元格区域添加边框 12 11-4 灵活设置单元格的行高列宽 12 技巧12 单元格中的数据有效性 12 12-1 在单元格中建立数据有效性 12 12-2 判断单元格是否存在数据有效性 12 12-3 动态的数据有效性 12 12-4 自动展开数据有效性下拉列表 12 技巧13 单元格中的公式 12 13-1 在单元格中写入公式 12 13-2 检查单元格是否含有公式 12 13-3 判断单元格公式是否存在错误 12 13-4 取得单元格中公式的引用单元格 12 13-5 将单元格中的公式转换为数值 12 技巧14 单元格中的批注 12 14-1 判断单元格是否存在批注 12 14-2 为单元格添加批注 12 14-3 删除单元格中的批注 12 技巧15 合并单元格操作 12 15-1 判断单元格区域是否存在合并单元格 12 15-2 合并单元格时连接每个单元格的文本 12 15-3 合并内容相同的连续单元格 12 15-4 取消合并单元格时在每个单元格中保留内容 12 技巧16 高亮显示单元格区域 12 技巧17 双击被保护单元格时不显示提示消息框 12 技巧18 重新计算工作表指定区域 12 技巧19 录入数据后单元格自动保护 12 技巧20 工作表事件Target参数的使用方法 12 20-1 使用单元格的Address 属性 12 20-2 使用Column属性和Row属性 12 20-3 使用Intersect方法 12 第2章 Worksheet(工作表)对象 12 技巧21 引用工作表的方式 12 21-1 使用工作表的名称 12 21-2 使用工作表的索引号 12 21-3 使用工作表的代码名称 12 21-4 使用ActiveSheet属性引用活动工作表 12 技巧22 选择工作表的方法 12 技巧23 遍历工作表的方法 12 23-1 使用For...Next 语句 12 23-2 使用For Each...Next 语句 12 技巧24 在工作表中上下翻页 12 技巧25 工作表的添加与删除 12 技巧26 禁止删除指定工作表 12 技巧27 自动建立工作表目录 12 技巧28 工作表的深度隐藏 12 技巧29 防止更改工作表的名称 12 技巧30 工作表中一次插入多行 12 技巧31 删除工作表中的空行 12 技巧32 删除工作表的重复行 12 技巧33 定位删除特定内容所在的行 12 技巧34 判断是否选中整行 12 技巧35 限制工作表的滚动区域 12 技巧36 复制自动筛选后的数据区域 12 技巧37 使用高级筛选获得不重复记录 12 技巧38 工作表的保护与解除保护 12 技巧39 奇偶页打印 12 第3章 Wordbook(工作簿)对象 12 技巧40 工作簿的引用方法 12 40-1 使用工作簿的名称 12 40-2 使用工作簿的索引号 12 40-3 使用ThisWorkbook 12 40-4 使用ActiveWorkbook 12 技巧41 新建工作簿文件 12 技巧42 打开指定的工作簿 12 技巧43 判断指定工作簿是否打开 12 43-1 遍历Workbooks集合方法 12 43-2 错误处理方法 12 技巧44 禁用宏则关闭工作簿 12 技巧45 关闭工作簿不显示保存对话框 12 45-1 使用Close方法关闭工作簿 12 45-2 单击工作簿关闭按钮关闭工作簿 12 技巧46 禁用工作簿的关闭按钮 12 技巧47 保存工作簿的方法 12 47-1 使用Save方法 12 47-2 直接保存为另一文件名 12 47-3 保存工作簿副本 12 技巧48 保存指定工作表为工作簿文件 12 技巧49 打印预览时不触发事件 12 技巧50 设置工作簿文档属性信息 12 技巧51 不打开工作簿取得其他工作簿数据 12 51-1 使用公式 12 51-2 使用GetObject函数 12 51-3 隐藏Application对象 12 51-4 使用ExecuteExcel4Macro方法 12 51-5 使用SQL连接 12 技巧52 返回窗口的可视区域地址 12 第4章 Shape(图形)、Chart(图表)对象 12 技巧53 在工作表中添加图形 12 技巧54 导出工作表中的图片 12 技巧55 在工作表中添加艺术字 12 技巧56 遍历工作表中的图形 12 技巧57 移动、旋转图片 12 技巧58 工作表中自动插入图片 12 技巧59 固定工作表中图形的位置 12 技巧60 使用VBA自动生成图表 12 技巧61 使用独立窗口显示图表 12 技巧62 导出工作表中的图表 12 技巧63 多图表制作 12 第5章 Application对象 12 技巧64 取得Excel版本信息 12 技巧65 取得当前用户名称 12 技巧66 Excel中的“定时器” 12 技巧67 设置活动打印机的名称 12 技巧68 屏蔽、改变组合键的功能 12 技巧69 设置Excel窗口标题栏 12 技巧70 自定义Excel状态栏 12 技巧71 灵活退出Excel 12 技巧72 隐藏Excel主窗口 12 72-1 设置Application对象的Visible属性 12 72-2 将窗口移出屏幕 12 72-3 设置工作簿作为加载宏运行 12 第6章 使用对话框 12 技巧73 使用Msgbox函数 12 73-1 显示简单的提示信息 12 73-2 定制个性化的消息框 12 73-3 获得消息框的返回值 12 73-4 在消息框中排版 12 73-5 对齐消息框中显示的信息 12 技巧74 自动关闭的消息框 12 74-1 使用WshShell.Popup方法显示消息框 12 74-2 使用API函数显示消息框 12 技巧75 使用InputBox函数 12 75-1 简单的数据输入 12 75-2 使用对话框输入密码 12 技巧76 使用InputBox方法 12 76-1 输入指定类型的数据 12 76-2 获得单元格区域地址 12 技巧77 内置对话框 12 77-1 调用内置的对话框 12 77-2 获取选定文件的文件名 12 77-3 使用“另存为”对话框 12 技巧78 调用操作系统“关于”对话框 12 第7章 菜单和工具栏 12 技巧79 在菜单中添加菜单项 12 技巧80 在菜单栏指定位置添加菜单 12 技巧81 屏蔽和删除工作表菜单 12 技巧82 改变系统菜单的操作 12 技巧83 定制自己的系统菜单 12 技巧84 改变菜单按钮图标 12 技巧85 右键快捷菜单增加菜单项 12 技巧86 自定义右键快捷菜单 12 技巧87 使用右键菜单制作数据有效性 12 技巧88 禁用工作表右键菜单 12 技巧89 创建自定义工具栏 12 技巧90 自定义工具栏按钮图标 12 技巧91 自定义工作簿图标 12 技巧92 移除工作表的最小最大化和关闭按钮 12 技巧93 在工具栏上添加下拉列表框 12 技巧94 屏蔽工作表的复制功能 12 技巧95 禁用工具栏的自定义 12 技巧96 屏蔽所有的命令栏 12 技巧97 恢复Excel的命令栏 12 第8章 控件与用户窗体 12 技巧98 限制文本框的输入 12 技巧99 文本框添加右键快捷菜单 12 技巧100 文本框回车自动输入 12 技巧101 自动选择文本框内容 12 技巧102 设置文本框数据格式 12 技巧103 限制文本框的输入长度 12 技巧104 将光标返回文本框中 12 技巧105 文本框的自动换行 12 技巧106 多个文本框数据相加 12 技巧107 控件跟随活动单元格 12 技巧108 高亮显示按钮 12 技巧109 组合框和列表框添加列表项的方法 12 109-1 使用RowSource属性添加列表项 12 109-2 使用List属性添加列表项 12 109-3 使用AddItem方法添加列表项 12 技巧110 去除列表框数据源的重复值和空格 12 技巧111 移动列表框条目 12 技巧112 允许多项选择的列表框 12 技巧113 多列组合框和列表框的设置 12 113-1 多列组合框和列表框添加列表项 12 113-2 多列列表框写入工作表 12 技巧114 输入时逐步提示信息 12 技巧115 二级组合框 12 技巧116 使用DTP控件输入日期 12 技巧117 使用RefEdit控件选择区域 12 技巧118 如何注册控件 12 技巧119 遍历控件的方法 12 119-1 使用名称中的变量遍历控件 12 119-2 使用对象类型遍历控件 12 119-3 使用程序标识符遍历控件 12 119-4 使用名称中的变量遍历图形 12 119-5 使用FormControlType属性遍历图形 12 技巧120 使微调框最小变动量小于1 12 技巧121 不打印工作表中的控件 12 121-1 设置控件格式 12 121-2 设置控件的printobjcet属性 12 技巧122 在框架中使用滚动条 12 技巧123 使用多页控件 12 技巧124 标签文字垂直居中对齐 12 技巧125 使用TabStrip控件 12 技巧126 显示GIF动画图片 12 技巧127 播放Flash文件 12 技巧128 在工作表中添加窗体控件 12 128-1 使用AddFormControl方法 12 128-2 使用Add方法 12 技巧129 在工作表中添加ActiveX控件 12 129-1 使用Add方法 12 129-2 使用AddOLEObject方法 12 技巧130 使用spreadsheet控件 12 技巧131 使用Listview控件 12 131-1 使用Listview控件显示数据列表 12 131-2 在Listview控件中使用复选框 12 131-3 调整Listview控件的行距 12 131-4 在Listview控件中排序 12 131-5 Listview控件的图标设置 12 技巧132 调用非模式窗体 12 技巧133 进度条的制作 12 133-1 使用进度条控件 12 133-2 使用标签控件 12 技巧134 使用TreeView控件显示层次 12 技巧135 用户窗体添加图标 12 技巧136 用户窗体添加最大最小化按纽 12 技巧137 禁用窗体标题栏的关闭按钮 12 技巧138 屏蔽窗体标题栏的关闭按钮 12 技巧139 无标题栏和边框的窗体 12 技巧140 制作年月选择窗体 12 技巧141 自定义窗体中的鼠标指针类型 12 技巧142 调整窗体的显示位置 12 技巧143 由鼠标确定窗体显示位置 12 技巧144 用户窗体的打印 12 技巧145 使用自定义颜色设置窗体颜色 12 技巧146 在窗体中显示图表 12 146-1 使用Export方法 12 146-2 使用API函数 12 技巧147 窗体运行时调整控件大小 12 技巧148 在用户窗体上添加菜单 12 技巧149 在用户窗体上添加工具栏 12 技巧150 使用代码添加窗体及控件 12 技巧151 用户窗体的全屏显示 12 151-1 设置用户窗体为应用程序的大小 12 151-2 根据屏幕分辨率进行设置 12 技巧152 在用户窗体上添加状态栏 12 第9章 函数的使用 12 技巧153 调用工作表函数求和 12 技巧154 查找最大、最小值 12 技巧155 不重复值的录入 12 技巧156 获得当月的最后一天 12 技巧157 四舍五入运算 12 157-1 极小值修正法 12 157-2 调用工作表函数法 12 技巧158 使用字符串函数 12 技巧159 使用日期函数 12 技巧160 判断是否为数值 12 技巧161 格式化数值、日期和时间 12 技巧162 个人所得税自定义函数 12 技巧163 人民币大写函数 12 技巧164 列号转换为列标 12 技巧165 判断工作表是否为空表 12 技巧166 查找指定工作表 12 技巧167 查找指定工作簿是否打开 12 技巧168 取得应用程序的安装路径 12 技巧169 数组的使用 12 169-1 代码运行时创建数组 12 169-2 文本转换为数组 12 169-3 使用动态数组去除重复值 12 第10章 文件操作 12 技巧170 导入文本文件 12 170-1 使用查询表导入 12 170-2 使用Open 语句导入 12 170-3 使用OpenText方法 12 技巧171 将数据写入文本文件 12 171-1 使用Print # 语句 12 171-2 另存为文本文件 12 技巧172 文件修改的日期和时间 12 技巧173 查找文件或文件夹 12 技巧174 获得当前文件夹的名称 12 技巧175 创建和删除文件夹 12 技巧176 重命名文件或文件夹 12 技巧177 复制指定的文件 12 技巧178 删除指定的文件 12 技巧179 搜索特定的文件 12 技巧180 使用WSH处理文件 12 180-1 获取文件信息 12 180-2 查找文件 12 180-3 移动文件 12 180-4 复制文件 12 180-5 删除文件 12 180-6 创建文件夹 12 180-7 复制文件夹 12 180-8 移动文件夹 12 180-9 删除文件夹 12 180-10 导入文本文件 12 180-11 创建文本文件 12 第11章 其他应用 12 技巧181 取得电脑名称 12 技巧182 取得逻辑盘序列号 12 技巧183 使用API取得硬盘信息 12 技巧184 使用数字签名 12 技巧185 暂停代码的运行 12 技巧186 定时关机 12 技巧187 打开指定的网页 12 技巧188 VBE的操作 12 188-1 添加模块和过程 12 188-2 建立事件过程 12 188-3 模块的导入与导出 12 188-4 删除宏代码 12 技巧189 保护VBA代码 12 189-1 设置工程密码 12 189-2 设置“工程不可查看” 12 技巧190 优化代码 12 190-1 关闭屏幕刷新 12 190-2 使用工作表函数 12 190-3 使用更快的单元格操作方法 12 190-4 使用With语句引用对象 12 190-5 少用激活或选择语句 12 技巧191 取得文件的基本名称 12 技巧192 防止用户中断代码运行 12 技巧193 加班费计算表 12 技巧194 制作发放条 12 技巧195 费用统计表 12 技巧196 职工花名册 12 技巧197 收据系统 12 技巧198 职工考勤系统 12

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值