VBA—遍历EXCEL文件中的Sheet

需求:doc1为计算软件输出excel文件,doc2为项目需要格式文件。

遍历doc1中的sheet,确认目标sheet,然后将doc1中的数据复制到doc2中。

方法1:For each ....next 遍历目标文件sheet

Sub transdata()
    Dim myfile1, myfile2 As String
    Dim m, n As Integer
    Dim doc1, doc2 As Workbook  '定义为一个workbook对象,而不是workbooks,workbooks为数组。
    Dim mysheet As Worksheet    '定义为一个worksheet对象,worksheets为数组。
    Dim mycheck1
    Dim objectname As String
    
    myfile1 = Application.GetOpenFilename() 'getopenfilename()不打开文件,只返回为含路径的名称, 为字符串类型。
    Debug.Print myfile1 'Debug.print 在立即窗口打打印myfile1 内容
    Set doc1 = Workbooks.Open(myfile1) 'open()打开一个workbook文件
    
    mycheck1 = VarType(doc1) 'Vartype()用于数据类型,对象类型返回值为9,用于验证对象类型。
    Debug.Print mycheck1

    myfile2 = Application.GetOpenFilename()
    Set doc2 = Workbooks.Open(myfile2)  '普通类型变量,如整型变量,字符串,用let赋值,一般省略。对象用set赋值,不能省略。
   
    objectname = "Sheet1"

    For Each mysheet In doc1.Worksheets
        If mysheet.Name = objectname Then   'objectname可以不赋值,If语句中可以直接判断。但是if语句内= 为逻辑判断,不能用于赋值。
            doc2.Worksheets("Sheet1").Range("A1") = 100
        End If

    Next
    
    doc1.Close savechanges:=False   '关闭文件,不保存。
    
    doc2.Close savechanges:=True    '关闭文件,保存修改。
    
    MsgBox "运行结束"
    
    
End Sub

方法2:用For ...next 循环从sheet1依次读取全部sheet。(有时间更新)

具体参考以下链接:

(2条消息) VBA 循环遍历某一个excel文件的sheet名_頑張ろう!的博客-CSDN博客_vba遍历sheet页

周日快乐。

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: VBA可以使用循环语句遍历Excel的多个sheet。可以使用For Each循环语句,将每个sheet作为一个对象进行遍历。例如: Sub TraverseSheets() Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets '在这里编写对每个sheet的操作 Debug.Print ws.Name Next ws End Sub 上面的代码将遍历当前工作簿的所有sheet,并在调试窗口输出每个sheet的名称。您可以在循环编写任何您需要执行的操作。 ### 回答2: VBA是Visual Basic for Applications的缩写,是微软开发的一种基于Visual Basic语言的宏编程语言。在ExcelVBA可以帮助用户完成一些复杂的任务,比如遍历多个sheet。在本文,我们将会讲述VBA遍历Excel的多个sheet。 实现VBA遍历Excel的多个sheet的方法如下: 1.定义变量 首先需要定义一个Workbook对象,用来代表待遍历Excel文件,以及一个Worksheet对象,用来代表待遍历的每个sheet。 Dim wb As Workbook Dim ws As Worksheet 2.获取Workbook对象 获取Workbook对象的最简单方法是使用Application.Workbooks.Open方法,该方法将Excel文件打开为一个Workbook对象。 Set wb = Application.Workbooks.Open("C:\Users\Test\Workbook.xlsx") 3.遍历Worksheet对象 在Excel,一个Workbook对象包括了多个Worksheet对象,我们需要遍历每一个Worksheet对象以便操作其的数据。 For Each ws In wb.Worksheets 'do something with ws Next ws 在遍历每个Worksheet对象时,你可以执行一些操作(如复制、计算等),具体取决于你的需求。 4.关闭Excel文件遍历完成后,你应该关闭已打开的Excel文件。 wb.Close 以上步骤就是VBA遍历Excel的多个sheet的基本方法。通过这些步骤,你可以遍历每个Worksheet对象,执行你想要的操作,最后关闭Excel文件。同时,你可以根据需要在代码添加一些功能,比如错误处理、日志记录等。 ### 回答3: 在使用VBA遍历Excel的多个sheet时,需要使用循环来实现。可以使用For循环或Do While循环来实现遍历。以下是实现的步骤: 1. 获取当前工作簿对象。 Dim wb As Workbook Set wb = ActiveWorkbook 2. 使用循环来遍历每个sheet。 For Each ws In wb.Worksheets ' 在这里编写需要执行的代码 Next ws 或者使用 Do While 循环 Dim sheetIndex As Integer sheetIndex = 1 Do While sheetIndex <= wb.Worksheets.Count ' 在这里编写需要执行的代码 sheetIndex = sheetIndex + 1 Loop 3. 在循环编写需要执行的代码。 例如,以下代码会遍历当前工作簿的所有sheet,并将每个sheet的A1单元格的值改为"Hello, World!"。 For Each ws In wb.Worksheets ws.Range("A1").Value = "Hello, World!" Next ws 以上就是使用VBA遍历Excel的多个sheet的步骤和示例代码。需要注意的是,在遍历每个sheet时,需要保证当前sheet处于活动状态,这样才能对其进行操作。可以使用Activate方法或Select方法来激活当前sheet
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值