【问题标题】:Open, rename and run same excel macro on multiple excel files在多个 excel 文件上打开、重命名和运行相同的 excel 宏
【发布时间】:2017-05-30 21:55:01
【问题描述】:

我的 MacBook 上的一个文件夹中有大约 50 张 Excel 表格 - (/Users/myusername/Desktop/Tidy/folder")

我想对它们都执行以下宏:

Sub SmartCopy()
Dim s1 As Worksheet, s2 As Worksheet
Dim N As Long, i As Long, j As Long
Set s1 = Sheets("s1")
Set s2 = Sheets("s2")
N = s1.Cells(Rows.Count, "Y").End(xlUp).Row
j = 1
For i = 1 To N
    If s1.Cells(i, "Y").Value = "No" Then
    Else
        s1.Cells(i, "Y").EntireRow.Copy s2.Cells(j, 1)
        j = j + 1
    End If
Next i

结束子

我正在努力打开工作表,几乎就像文件路径无法识别一样,每张工作表的命名如下:

business-listing-002-w-site.csv

只有一个标签:

business-listing-002-w-site.csv

所以我还需要 1) 每次重命名工作表 2) 让宏只打开工作簿中唯一的工作表。

我想将所有工作簿中的所有数据复制到一个母版中。我确实尝试添加我的宏并调整这个宏,但根本无法让它运行。

link to another post

【问题讨论】:

    标签: vba excel csv


    【解决方案1】:

    您需要定义工作簿(文件),而不仅仅是工作表(选项卡)。

    Dim filePath as String
    Dim sheetStart as String
    Dim count as Integer
    Dim sheetEnd as string
    Dim thisSheet as Worksheet
    Dim wb1 as Workbook
    Dim ws1 as Worksheet
    
    
    filePath = "/Users/myusername/Desktop/Tidy/folder/"
    sheetStart = "business-listing-"
    sheetEnd = "-w-site"
    Set thisSheet as ThisWorkbook.Worksheets("Sheet1")
    
    
    For count = 1 to 44 'the range of sheets you have
        Set wb1 = Workbooks.Open(filePath & sheetStart & format(count, "000") & sheetEnd & ".csv")
        Set ws1 = wb1.Worksheets(sheetStart & format(count, "000") & sheetEnd)
    
        'move the ranges you want from ws1 to thisSheet
    
        wb1.close
    next count
    

    每次代码循环时,它都会改变正在打开的文件名和它正在寻找的工作表。

    我假设您知道或可以找到如何根据您提供的原始代码将范围从 ws1 复制到 thisSheet 的下一个可用行。

    使用基于 cmets 的改进代码进行编辑

    【讨论】:

    • 我仍然无法让它工作。简单来说,我需要遍历很多我不知道名称的工作簿,我也不知道每个工作簿中唯一选项卡的名称。然后,我需要通过查找列 J 并在该列中查找任何“否”条目并仅选择这些行,然后将它们全部放在一个母版表上来对数据进行排序。
    • 名称是否按任何逻辑顺序排列?即business-listing-002-site-w、business-listing-003-site-w、..004...等?
    • 它们实际上是肯定的,但我认为有一种方法可以打开文件夹中的任何文件。当然,我会采取任何解决方案!实际文件从“business-listing-000-w-site”到“business-listing-041-w-site”,感谢您的帮助。
    猜你喜欢
    • 2013-01-23
    • 1970-01-01
    • 2015-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多