VBA常用代码

操作工作簿/工作表常用的30段VBA基础代码

原创 兔兔excel 兔兔vba 2024-04-14 00:02 广东

1、打开工作簿
Workbooks.Open "C:\文件路径\文件名.xlsx"
2. 关闭工作簿
ActiveWorkbook.Close SaveChanges:=False
3. 保存工作簿
ActiveWorkbook.Save
4. 另存为工作簿
ActiveWorkbook.SaveAs "C:\文件路径\新文件名.xlsx"
5. 新建工作簿
Workbooks.Add
6. 新建工作表
Sheets.Add After:=ActiveSheet
7. 删除工作表
Application.DisplayAlerts = False
Sheets("工作表名称").Delete
Application.DisplayAlerts = True
8. 重命名工作表
Sheets("旧工作表名称").Name = "新工作表名称"

9. 复制工作表
Sheets("源工作表名称").Copy After:=Sheets("目标工作表名称")
10. 移动工作表
Sheets("工作表名称").Move Before:=Sheets("目标工作表名称")
11. 激活工作表
Sheets("工作表名称").Activate
12. 选择工作表
Sheets("工作表名称").Select
13. 获取当前工作表名称
Dim sheetName As String
sheetName = ActiveSheet.Name
14. 获取工作簿中所有工作表的数量
Dim sheetCount As Integer
sheetCount = ThisWorkbook.Sheets.Count
15. 获取工作簿中所有工作表的名称
Dim sheetNames() As String
Dim i As Integer
ReDim sheetNames(1 To ThisWorkbook.Sheets.Count)
For i = 1 To ThisWorkbook.Sheets.Count
sheetNames(i) = ThisWorkbook.Sheets(i).Name
Next i
16. 获取指定单元格的值
Dim cellValue As Variant
cellValue = Range("A1").Value
17. 设置指定单元格的值
Range("A1").Value = "Hello, World!"
18. 获取指定单元格的行号和列号
Dim rowNum As Long, colNum As Long
rowNum = Range("A1").Row
colNum = Range("A1").Column
19. 获取指定单元格的地址
Dim cellAddress As String
cellAddress = Range("A1").Address
20. 获取指定单元格的公式
Dim cellFormula As String
cellFormula = Range("A1").Formula
21. 设置指定单元格的公式
Range("A1").Formula = "=SUM(B1:B10)"
22. 清除指定单元格的内容
Range("A1").ClearContents
23. 清除指定单元格的格式和内容
Range("A1").Clear
24. 复制指定单元格的内容到剪贴板
Range("A1").Copy
25. 从剪贴板粘贴内容到指定单元格
Range("A1").PasteSpecial Paste:=xlPasteAll
26. 设置指定单元格的背景色
Range("A1").Interior.Color = RGB(255, 0, 0)
27. 设置指定单元格的字体颜色
Range("A1").Font.Color = RGB(255, 255, 255)
28. 设置指定单元格的字体大小
Range("A1").Font.Size = 14
29. 设置指定单元格的字体加粗
Range("A1").Font.Bold = True
30. 设置指定单元格的字体斜体

Range("A1").Font.Italic = True

顶级对象application非常基础的23段vba代码


ication.Workbooks("工作簿名称").Visible = xlHidden
Application.Workbooks("工作簿名称").Visible = xlVisible
8. 设置活动工作簿
Application.ActiveWorkbook


9. 切换工作表

Application.Workbooks("工作簿名称").Sheets("工作表名称").Activate


10. 创建新的工作表
Application.Sheets.Add After:=Application.Sheets(Application.Sheets.Count)

16. 设置单元格格式

Application.Range("A1").NumberFormat = "0.00"

18. 数据排序
Application.Range("A1:B10").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlYes
19. 筛选数据
Application.Range("A1:B10").AutoFilter

20. 查找和替换
Application.WorksheetFunction.Lookup _
LookIn:=xlValues, _
LookAt:=xlWhole, _
Key1:=1, _
Value:=2, _
Array:=Range("A1:B10")
21. 设置字体
Application.Range("A1").Font.Name = "Arial"
22. 设置单元格边框
Application.Range("A1").Borders.Weight = xlThin
23. 设置背景色
Application.Range("A1").Interior.Color = RGB(255, 255,0)

一、数据处理

1、删除重复行

Sub DeleteDuplicates()

Range("A1:B100").RemoveDuplicates Columns:=Array(1, 2), Header:=xlNo

End Sub

2、将数字格式化为货币

Sub FormatCurrency()

Range("A1:A10").NumberFormat = "$#,##0.00"

End Sub

3、转换列中的文本为大写

Sub ConvertToUpperCase()

Range("A1:A10").Value = Application.WorksheetFunction.Upper(Range("A1:A10").Value)

End Sub

7、查找并替换文本
Sub FindAndReplace()
Cells.Replace What:="OldText", Replacement:="NewText", LookAt:=xlPart, MatchCase:=False
End Sub

8、查找特定值并高亮显示
Sub HighlightValue()
Dim cell As Range
For Each cell In Range("A1:A10")
If cell.Value = "Target" Then
cell.Interior.Color = RGB(255, 255, 0) ' 黄色
End If
Next cell
End Sub

16、创建超链接

Sub CreateHyperlink()

ActiveSheet.Hyperlinks.Add Anchor:=Cells(1, 1), Address:="https://www.example.com", TextToDisplay:="Visit Example"

End Sub

vba核心对象range的40段基础代码

1. 选择特定单元格 

Range("A1").Select

2. 读取单元格值

MsgBox Range("A1").Value

3. 设置单元格值

Range("A1").Value = 100

4. 合并单元格

Range("A1:B2").Merge

5. 取消合并单元格

Range("A1").UnMerge

6. 设置单元格背景色

Range("A1").Interior.Color = RGB(255, 0, 0)

7. 设置字体颜色

Range("A1").Font.Color = RGB(0, 0, 255)

8. 设置字体大小

Range("A1").Font.Size = 12

9. 设置加粗

Range("A1").Font.Bold = True

10. 设置斜体

Range("A1").Font.Italic = True

11. 设置下划线

Range("A1").Font.Underline = True

12. 设置边框样式

Range("A1").Borders.LineStyle = xlContinuous

13. 设置水平对齐

Range("A1").HorizontalAlignment = xlCenter

14. 设置垂直对齐

Range("A1").VerticalAlignment = xlTop

15. 插入行

Rows(1).Insert

16. 删除行

Rows(1).Delete

17. 隐藏行

Rows(1).Hidden = True

18. 显示行

Rows(1).Hidden = False

19. 复制单元格

Range("A1").Copy Destination:=Range("B1")

20. 清除内容

Range("A1").ClearContents

21. 自动筛选

Range("A1").CurrentRegion.AutoFilter Field:=1, Criteria1:=">100"

22. 排序数据

Range("A1").CurrentRegion.Sort Key1:=Range("B1"), Order1:=xlAscending

23. 查找特定值的单元格

Set foundCell = Range("A1:A10").Find(What:=25, LookIn:=xlValues)

24. 应用条件格式

Range("A1:A10").FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, Formula1:="100"

25. 创建数据验证

With Range("A1").Validation

26. 设置打印区域

ActiveSheet.PageSetup.PrintArea = Range("A1:D10").Address

27. 插入单元格

Range("A1").Offset(1, 0).Resize(RowSize:=2).Insert Shift:=xlDown

28. 删除单元格

Range("A2:A3").Delete Shift:=xlUp

29. 调整行高

Range("A1").RowHeight = 50

30. 调整列宽

Range("A1").ColumnWidth = 15

31. 复制格式

Range("A1").Copy Destination:=Range("B1")

32. 粘贴特殊格式

Range("B1").PasteSpecial Paste:=xlPasteFormats

33. 添加超链接

Range("A1").Hyperlinks.Add Anchor:=Range("A1"), Address:="http://www.example.com", TextToDisplay:="点击访问"

34. 批量清除公式保留值

Range("A1:B10").Value = Range("A1:B10").Value

35. 保护/解锁工作表中的单元格

ActiveSheet.Protect Password:="password"

36. 遍历形状并操作

For Each shp In ActiveSheet.Shapes ... Next shp

37. 批量替换公式中的文本

Range("A1:B10").Replace What:="old_text", Replacement:="new_text", LookAt:=xlPart, SearchOrder:=xlByRows

38. 批量转换数值格式

Range("A1:A10").NumberFormat = "0.00%"

39. 批量应用文本格式

Range("A1:A10").Font.Name = "Arial"

40. 批量设置条件格式规则

Range("A1:A10").FormatConditions.Add Type:=xlExpression, Formula1:="=MOD(A1,2)=0"

关于“新建”的8段基础vba代码

1. 新建一个工作簿:

Workbooks.Add

2. 新建一个工作表:

Sheets.Add

3. 新建一个工作表并命名为“新工作表”:

Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = "新工作表"

4. 新建一个工作表并将其移动到第一个位置:

Sheets.Add Before:=Sheets(1)

5. 新建一个工作表并将其复制到指定位置:

Sheets("Sheet1").Copy After:=Sheets(Sheets.Count)

6. 新建一个工作表并将其复制到指定位置并重命名:

Sheets("Sheet1").Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = "新工作表"

7. 新建一个工作表并将其复制到指定位置并删除原工作表:

Sheets("Sheet1").Copy After:=Sheets(Sheets.Count)
Sheets("Sheet1").Delete

8. 新建一个工作表并将其复制到指定位置并删除原工作表并重命名:

Sheets("Sheet1").Copy After:=Sheets(Sheets.Count)
Sheets("Sheet1").Delete
ActiveSheet.Name = "新工作表"

常用的字符串操作函数

Len - 获取字符串长度

Dim strLength As StringstrLength = Len("Hello")  '5

LenB - 获取字符串所占字节

Byte 1个字节,Boolean 2个字节,Integer 2个字节,Long 4个字节,Single 4个字节,Double 8个字节,Decimal 14个字节,Date 8个字节,Object 4个字节,String 每个字符占用两个字节

Dim strLength As StringstrLength = Len("Hello")  '10

 Left、Right 和 Mid - 获取字符串的左/右/中部分

leftPart = Left("Hello", 3) 'HelrightPart = Right("Hello", 2) 'l0midPart = Mid("Hello", 2) 'el

Ucase 和 Lcase - 转换为大写或小写

upperStr = Ucase("hello")  '  HELLOlowerStr = Lcase("HELLO")  'hello

Trim - 去除字符串前后的空格

Trim("   Hello   ")    'Hello

LTrim - 去除字符串左侧的空格

RTrim - 去除字符串右侧的空格

Space - 返回由指定数量的空格组成的字符串

Space(5) '"     "

InStr - 查找子字符串在字符串中首次出现的位置

第一个参数表示起始查找位置,如果position=0,说明没找到

str = "Hello World World"position = InStr(1, str, "World") '7position = InStr(8, str, "World") '13position = InStr(1, str, "Worldj") '0

InStrRev - 查找子字符串在字符串中最后一次出现的位置

Dim str As String  str = "Hello World World"  InStrRev(str, "World")  '13

Asc - 返回字符串中第一个字符的ASCII值

Asc("A")  '65Asc("a")  '97Asc("1")  '49

Chr - 返回指定ASCII值的字符

Chr(65)  'AChr(97)  'aChr(49)  '1

Replace - 替换字符串中的部分内容

Replace("Hello World", "World", "VBA") 'Hello VBA

Date 和 Now - 获取当前日期和时间

MsgBox "今天是:" & Date & ",现在是:" & Now

Year, Month, Day - 从日期中提取年、月、日

Dim currentDate As Date  currentDate = Date  MsgBox "年份是:" & Year(currentDate) & ",月份是:" & Month(currentDate) & ",日期是:" & Day(currentDate)  

Round - 四舍五入数字

Dim roundedNum As DoubleroundedNum = Round(3.14159, 2)   '3.14

Int 和 Fix - 取整

Dim intNum As Integer  

Dim fixNum As Double  

intNum = Int(3.14)   '3

fixNum = Fix(3.14)   '3

intNum = Int(-3.14)   '-4

fixNum = Fix(-3.14)   '-3

Abs - 取绝对值

Dim absNum As Double    

absNum = Abs(-5.5)    '5.5

Split - 将字符串按指定分隔符拆分为数组

Dim strArray() As String 

strArray = Split("Apple,Banana,Cherry", ",")    

MsgBox "第一个水果是:" & strArray(0)  'Apple  

Join - 将数组的元素连接成一个字符串

Dim fruitArray() As Variant    

fruitArray = Array("Apple", "Banana", "Cherry")    

Dim joinedStr As String    

joinedStr = Join(fruitArray, ", ")    

MsgBox "所有水果:" & joinedStr    

IsNumeric - 检查是否为数字

Dim isNum As Boolean    

isNum = IsNumeric(123)    'true

isNum = IsNumeric("123")   'false

IsEmpty - 检查是否为空

Dim isEmptyVar As Variant  

IsEmpty(isEmptyVar)  'true  

isEmptyVar = ""I

sEmpty(isEmptyVar)   'false

IIf - 条件判断并返回

TestMe = 500

IIf(TestMe > 1000, "Large", "Small")  'Small

Rnd - 生成随机数

Rnd(1)  '生成[0,1)的随机数,包含0、不包含1'如果要生成[m,n)的随机数

Rnd(1) *(n-m)+mRnd(1)*(100-60)+60  '生成[60,100)的随机数

Rnd()生成的是伪随机数,多次执行得到的是相同的随机序列,建议加一句Randomize,可以得到不同随机数

RandomizeRnd(1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值