VBA常用代码 |
您所在的位置:网站首页 › vba基础代码大全 › VBA常用代码 |
操作工作簿/工作表常用的30段VBA基础代码
原创 兔兔excel 兔兔vba 2024-04-14 00:02 广东 1、打开工作簿Workbooks.Open "C:\文件路径\文件名.xlsx"2. 关闭工作簿ActiveWorkbook.Close SaveChanges:=False3. 保存工作簿ActiveWorkbook.Save4. 另存为工作簿ActiveWorkbook.SaveAs "C:\文件路径\新文件名.xlsx"5. 新建工作簿Workbooks.Add6. 新建工作表Sheets.Add After:=ActiveSheet7. 删除工作表Application.DisplayAlerts = FalseSheets("工作表名称").DeleteApplication.DisplayAlerts = True8. 重命名工作表Sheets("旧工作表名称").Name = "新工作表名称" 9. 复制工作表Sheets("源工作表名称").Copy After:=Sheets("目标工作表名称")10. 移动工作表Sheets("工作表名称").Move Before:=Sheets("目标工作表名称")11. 激活工作表Sheets("工作表名称").Activate12. 选择工作表Sheets("工作表名称").Select13. 获取当前工作表名称Dim sheetName As StringsheetName = ActiveSheet.Name14. 获取工作簿中所有工作表的数量Dim sheetCount As IntegersheetCount = ThisWorkbook.Sheets.Count15. 获取工作簿中所有工作表的名称Dim sheetNames() As StringDim i As IntegerReDim sheetNames(1 To ThisWorkbook.Sheets.Count)For i = 1 To ThisWorkbook.Sheets.CountsheetNames(i) = ThisWorkbook.Sheets(i).NameNext i16. 获取指定单元格的值Dim cellValue As VariantcellValue = Range("A1").Value17. 设置指定单元格的值Range("A1").Value = "Hello, World!"18. 获取指定单元格的行号和列号Dim rowNum As Long, colNum As LongrowNum = Range("A1").RowcolNum = Range("A1").Column19. 获取指定单元格的地址Dim cellAddress As StringcellAddress = Range("A1").Address20. 获取指定单元格的公式Dim cellFormula As StringcellFormula = Range("A1").Formula21. 设置指定单元格的公式Range("A1").Formula = "=SUM(B1:B10)"22. 清除指定单元格的内容Range("A1").ClearContents23. 清除指定单元格的格式和内容Range("A1").Clear24. 复制指定单元格的内容到剪贴板Range("A1").Copy25. 从剪贴板粘贴内容到指定单元格Range("A1").PasteSpecial Paste:=xlPasteAll26. 设置指定单元格的背景色Range("A1").Interior.Color = RGB(255, 0, 0)27. 设置指定单元格的字体颜色Range("A1").Font.Color = RGB(255, 255, 255)28. 设置指定单元格的字体大小Range("A1").Font.Size = 1429. 设置指定单元格的字体加粗Range("A1").Font.Bold = True30. 设置指定单元格的字体斜体 Range("A1").Font.Italic = True 顶级对象application非常基础的23段vba代码 ication.Workbooks("工作簿名称").Visible = xlHiddenApplication.Workbooks("工作簿名称").Visible = xlVisible8. 设置活动工作簿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:=xlYes19. 筛选数据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 = xlThin23. 设置背景色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:=FalseEnd Sub 8、查找特定值并高亮显示Sub HighlightValue()Dim cell As RangeFor Each cell In Range("A1:A10")If cell.Value = "Target" Thencell.Interior.Color = RGB(255, 255, 0) ' 黄色End IfNext cellEnd 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").DeleteActiveSheet.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) |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |