以下是我用于将数据从RawImport
复制到PullData
的脚本的一部分。我必须从PullData
工作表复制某些单列的所有行,其中包含从第8行开始的数据。
Dim lrA As Integer
lrA = RawImport.Range("B" & Rows.Count).End(xlUp).Row
PullData.Range("A2:A" & lrA).Value = RawImport.Range("G8:G" & lrA).Value
PullData.Range("A2:A" & lrA).NumberFormat = "d mmm yyyy h:mm;@"
PullData.Range("A:A").Columns.AutoFit
PullData.Range("B2:B" & lrA).Value = RawImport.Range("E8:E" & lrA).Value
PullData.Range("C2:C" & lrA).Value = RawImport.Range("C8:C" & lrA).Value
PullData.Range("D2:D" & lrA).Value = RawImport.Range("D8:E" & lrA).Value
PullData.Range("E2:E" & lrA).Value = RawImport.Range("B8:B" & lrA).Value
PullData.Range("F2:F" & lrA).Value = RawImport.Range("F8:F" & lrA).Value
我在上面的代码中面临的问题是它包含前8行的数据。因此,脚本会在末尾的其余行中将某些值复制为N/A
。
我尝试编辑对行进行计数的行,如下所示:
lrA = RawImport.Range("B" & Rows.Count).End(xlUp).Row - 7
但是这从包含数据的范围的底部删除了7行,而不是前7行。
如何从第8行插入数据?
答案 0 :(得分:0)
这是因为您没有指定范围的起点。由于您必须复制所有行,(我假设您可以复制粘贴所有内容,而不仅仅是值),只需使用以下内容:
RawImport.Rows("8:" & lra).Copy Destination:=PullData.Range("A2")
这将复制lra
工作表中从第8行到PullData
的所有行,从范围“A2”开始,就像使用CTRL + C / CTRL + V进行复制粘贴一样
编辑:
好的,我认为我得到了你的想法(并相应地编辑了你的问题)。无论如何,你可以使用.Copy
:
RawImport.Range(Cells(8, x).Address(0, 0), Cells(lra, x).Address(0, 0)).Copy _
Destination:=PullData.Range("A2") 'or whatever range you need
其中x
就是您要在源工作表中选择的列。
答案 1 :(得分:0)
您是否尝试过这样的代码:
Dim lrA As Integer
lrA = RawImport.Range("B" & Rows.Count).End(xlUp).Row
PullData.Range("A2:A" & lrA - 6).Value = RawImport.Range("G8:G" & lrA).Value
PullData.Range("A2:A" & lrA - 6).NumberFormat = "d mmm yyyy h:mm;@"
PullData.Range("A:A").Columns.AutoFit
PullData.Range("B2:B" & lrA - 6).Value = RawImport.Range("E8:E" & lrA).Value
PullData.Range("C2:C" & lrA - 6).Value = RawImport.Range("C8:C" & lrA).Value
PullData.Range("D2:D" & lrA - 6).Value = RawImport.Range("D8:E" & lrA).Value
PullData.Range("E2:E" & lrA - 6).Value = RawImport.Range("B8:B" & lrA).Value
PullData.Range("F2:F" & lrA - 6).Value = RawImport.Range("F8:F" & lrA).Value
希望得到这个帮助。
答案 2 :(得分:0)
您的范围不同,请尝试从左侧6
减去lrA
。将更改应用于复制数据的所有行:
PullData.Range("A2:A" & lrA - 6).Value = RawImport.Range("G8:G" & lrA).Value
另外,我认为这是不受欢迎的:
PullData.Range("D2:D" & lrA).Value = RawImport.Range("D8:E" & lrA).Value
您将D
中的E
和RawImport
列复制到D
中的PullData
。