Excel Marco-如何组合和命名数据集



我正试图将文件路径列表中的数据合并到一个工作表中,然后添加每个数据集的名称。我有一个在Excel:中设置的名称和路径列表

名称1,路径1名称2,路径2名称3,路径3

到目前为止,我编写的宏在路径中循环,从B列的第一个空开始复制并粘贴到主电子表格中。我希望宏还可以在A列中用相应数据集旁边的Name1、Name2和Name3填充。我让宏做了第一部分,但现在我不能让它做命名部分。这是我到目前为止的代码:

Sub Data()
Dim ws As Worksheet, dataws As Worksheet
Dim wkb As Workbook, wkbFrom As Workbook
Dim wkblist As Range
Dim fromtab As String
Dim Name As String
For Each wkblist In Sheets("Ref").Range("d4:d18")
If wkblist.Value = "" Then
Exit For
Else
Set wkb = ThisWorkbook
Set wkbFrom = Workbooks.Open(wkblist)
Set ws = wkb.Sheets("Ref")
Set dataws = wkb.Sheets("Data")
fromtab = ws.Range("b22")
wkbFrom.Worksheets(fromtab).Range("b2:z200").Copy
dataws.Cells(Rows.Count, 5).End(xlUp).Offset(1).PasteSpecial xlValues

Application.CutCopyMode = False
wkbFrom.Close
End If
Next wkblist
End Sub

Ta,

我不太确定你想把名字粘贴在什么工作表上;我假设下面代码中的数据是WS。此外,我会将wkb、ws和dataws设置在循环之外,因为它们是或属于";本工作簿;。这并不是说在循环中很痛苦,但每次循环运行时,你都会重置它们。

下面的代码应该可以找到您刚刚粘贴到dataws中的行的范围。然后,它将与C列中的wkblit相关的名称复制到dataws的A列中。

Dim colARow, colBRow As Long
' Place code below after you paste the paths into Col B of the worksheet
' Find first blank in Col A
colARow = dataws.Cells(Rows.Count, 1).End(xlUp).Row + 1 
' Find last filled cell in Col B
colBRow = dataws.Cells(Rows.Count, 2).End(xlUp).Row
dataws.Range("A" & colARow & ":A" & colBRow).Value = wkblist.Offset(0,-1).Value

最新更新