![](/img/trans.png)
[英]how to count the number of rows with data from a specific cell in excel vba
[英]Count number of rows from a specific row number using excel VBA
以下是腳本的一部分,用於將數據從表單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行插入數據?
這是因為您沒有指定范圍的起點 。 由於您必須復制所有行,(我假設您可以復制粘貼所有內容,而不僅僅是值),只需使用以下命令:
RawImport.Rows("8:" & lra).Copy Destination:=PullData.Range("A2")
這將復制PullData
工作表中從第8行到第lra
行的所有行,從范圍“ 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
是您要在源工作表中選擇的列。
您是否嘗試過這樣的代碼:
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
希望能有所幫助。
您的范圍有所不同,請嘗試從左側的lrA
減去6
。 將更改應用於復制數據的所有行:
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
到PullData
D
中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.