【发布时间】:2018-07-05 17:06:52
【问题描述】:
我有一个 99% 的时间都在工作的宏,但有一部分给我带来了麻烦。我有根据某些参数分成不同大小组的数据。这些组的范围从 1 行到 10 多行。我正在尝试复制每个“组”并粘贴到模板表中并保存我已经弄清楚的。
Row Column B Column C
1 ASDF a
2 SDF a
3 WIRO a
4 VNDH a
5
6 FIJDK b
7 DFKIEL b
8
9 DLFKD c
10
11 OYPTK d
12 SSAODKJ d
13 SKJSJ d
我遇到问题的地方是第 9 行,其中 b B 列 = DLFKD,C 列 = C
所需的输出: 仅复制第 9 行
实际输出: 复制第 9-11 行
现有宏: 数据从第 5 行开始。
Sub templatecopy()
Dim x As Workbook
Dim y As Workbook
Dim N As Long
Dim name As String
'## Open both workbooks first:
Set x = ActiveWorkbook
'Set R
R = 5
'start Loop
Do Until N = 96
Set y = Workbooks.Open("F:\Logistics Dashboard\Customs Macro\Cover Sheet Template.xlsx")
'set N
N = Range("B" & R).Cells(1, 1).End(xlDown).Row
'Now, copy Container Numbers from x and past to y(template):
x.Sheets("Sheet1").Range("B" & R & ":C" & N).Copy
y.Sheets("Sheet1").Range("A14").PasteSpecial
'save as Name of Vessel
name = "F:\Logistics Dashboard\Customs Macro\" & y.Sheets("Sheet1").Range("A14").Value & ".xlsx"
ActiveWorkbook.SaveAs Filename:=name
'Close template after saving to reset:
y.Close
'set R equal to new row to start
R = N + 2
Loop
End Sub
问题在于我如何设置“N”。它无法区分只有一行数据的第 9 行。
【问题讨论】:
-
您的问题可能是大多数在您设置
N = Range("B" & R)...时,该工作簿具有您想要的活动工作表。其他时候可能是不同的。对您需要的特定工作表使用完全限定的引用,Sheet1.Range("B" ...或x.Sheets("MyWorksheet").Range("B"...