vba 判断数组是否为空_使用VBA代码完成判断工作簿是否存在及用数组来保存数据的方法...

6a8cca7ffdb5e290783c9264a69ef986.png

分享成果,随喜真能量。大家好,今日内容仍是和大家分享VBA编程中常用的简单“积木”过程代码,这些内容大多是取至我编写的“VBA代码解决方案”教程中内容。NO.176-NO.177内容是:

NO. 176:使用自定义MyExistSh函数判断工作簿中是否存在指定名称的工作表

NO. 177:使用Array函数创建一个数组用来保存数据并将其写入到工作表的单元格区域

4d1ac404c5b38d7095d6a1aebf45b52a.png

VBA过程代码176:使用自定义MyExistSh函数判断工作簿中是否存在指定名称的工作表

Sub mynz()

Dim Sh As String

Sh = InputBox("请输入查找的工作表名称:")

If Len(Sh) > 0 Then

If Not MyExistSh(Sh) Then

MsgBox "对不起,您查找的" & Sh & "工作表不存在!"

Else

Sheets(Sh).Select

End If

End If

End Sub

代码的解析说明:myn过程使用自定义的MyExistSh函数判断工作簿中是否存在指定名称的工作表,如果不存在则使用消息框进行提示.

fce3f350be4271ed0021d2bbcca6423b.png

VBA过程代码177:使用Array函数创建一个数组用来保存数据并将其写入到工作表的单元格区域

Option Base 1

Sub mynz ()

Dim arr As Variant

Dim i As Integer

arr = Array("A111", "A222", "A333", "A444", "A555", "A666", "A777", "A888")

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

Sheets("59").Cells(i, 1) = arr(i)

Next

End Sub

代码的解析说明:mynz过程使用Array函数创建一个数组用来保存数据并将其写入到工作表的单元格区域。Option Base语句声明数组下标的缺省下界为1,数组下标的缺省下界默认为0。代码使用Array函数创建数组用来保存数据。使用LBound函数和UBound函数取得数组的最小和最大下标。确定数组的大小后使用For...Next语句遍历数组元素并将数组元素依次写入到工作表的A列单元格中。

7fcbc3f9a350d151f4ef2b473f05c73d.png

VBA是实现自己小型办公自动化的有效手段,我根据自己20多年的VBA实际利用经验,现推出了四部VBA教程,这些是我多年编程经验的记录,也是我“积木编程”思想的体现。每一讲都是较大块的“积木”,可以独立的完成某些或者某类的过程,有需要的朋友可以联络(WeChat:NZ9668)分享。利用这些可以提高自己的编程效率。其一:“VBA代码解决方案”PDF教程,是VBA中各个知识点的讲解,覆盖了绝大多数的知识点,是初学及中级以下人员必备;其二“VBA数据库解决方案”PDF教程,数据库是数据处理的利器,对于中级人员应该掌握这个内容了。其三“VBA数组与字典解决方案”PDF教程,讲解VBA的精华----字典,是我们打开思路,提高代码水平的必备。其四“VBA代码解决方案”视频教程。目前正在录制,“每天20分钟,半年精进VBA”,越早参与,回馈越多。现在录制到第三册的99讲。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,你想了解如何用VBA代码一键合并汇总多个Excel工作簿,省时省力。以下是具体步骤: 1. 打开一个新的Excel工作簿,按下“Alt+F11”打开VBA编辑器。 2. 在VBA编辑器中,单击菜单栏上的“插入”->“模块”,打开一个新的VBA模块。 3. 在新的VBA模块中,复制以下代码: ``` Sub 合并多个工作簿() Dim MyPath As String, FilesInPath As String Dim MyFiles() As String Dim SourceRcount As Long, FNum As Long Dim mybook As Workbook, BaseWks As Worksheet Dim sourceRange As Range, destrange As Range Dim rnum As Long, CalcMode As Long '关闭屏幕刷新,提高运行速度 With Application CalcMode = .Calculation .Calculation = xlCalculationManual .ScreenUpdating = False .EnableEvents = False End With '获取要合并的工作簿所在的文件夹 MyPath = InputBox("请输入要合并的工作簿所在的文件夹路径") If MyPath = "" Then Exit Sub If Right(MyPath, 1) <> "\" Then MyPath = MyPath & "\" '获取要合并的工作簿文件名 FilesInPath = Dir(MyPath & "*.xlsx") If FilesInPath = "" Then MsgBox "找不到任何Excel文件", vbInformation, "没有文件" Exit Sub End If '将要合并的工作簿文件名放入一个数组中 FNum = 0 Do While FilesInPath <> "" FNum = FNum + 1 ReDim Preserve MyFiles(1 To FNum) MyFiles(FNum) = FilesInPath FilesInPath = Dir() Loop '打开第一个工作簿并将其内容复制到新的工作簿中 Set BaseWks = Workbooks.Open(MyPath & MyFiles(1)).Sheets(1) rnum = BaseWks.Cells.Find(What:="*", _ After:=BaseWks.Range("A1"), _ Lookat:=xlPart, _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious, _ MatchCase:=False).Row For FNum = 2 To UBound(MyFiles) Set mybook = Nothing On Error Resume Next Set mybook = Workbooks.Open(MyPath & MyFiles(FNum)) On Error GoTo 0 If Not mybook Is Nothing Then sourceRange = mybook.Sheets(1).Range("A1").CurrentRegion SourceRcount = sourceRange.Rows.Count If SourceRcount >= 2 Then Set destrange = BaseWks.Range("A" & rnum + 1) sourceRange.Copy destrange rnum = rnum + SourceRcount End If mybook.Close SaveChanges:=False End If Next FNum BaseWks.Columns.AutoFit '恢复屏幕刷新和事件处理,并计算一次 With Application .Calculation = CalcMode .ScreenUpdating = True .EnableEvents = True End With MsgBox "合并完成" End Sub ``` 4. 将代码中的“输入要合并的工作簿所在的文件夹路径”改为实际的文件夹路径。 5. 按下“F5”或点击“运行”->“运行子过程”,运行代码。 6. 程序会自动合并指定文件夹中的所有Excel工作簿并将它们汇总到新的工作簿中的第一个工作表中。 注意:在运行过程中,程序会关闭屏幕刷新和事件处理功能,以提高运行速度。运行完成后,程序会自动恢复这些功能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值