[英]If cell value in table range equals “New” copy entire row and paste as values in sheet 1 in the next empty cell
[英]How can I copy & paste entire rows with distinct values to a new sheet on varying cell ranges?
我知道有很多關於從VBA中的單元格值復制和粘貼的StackOverlow問答。 但是,我似乎無法使其適用於我自己的項目。 我要復制整行(如果它與H列中的Distinct Store#(非增量)匹配)到新工作表(在下面的代碼為“ Sheet1”中),該工作表已經有模板布局,可以在其中復制/粘貼價值觀。 在填寫任何數據之前,該模板在每張紙上看起來都一樣,除了前兩個具有數據的選項卡(“約會”和“發票”)。
我想出了下面的VBA,但這是要抓住的單元格,它粘貼了基於商店#更改的行(在下面的代碼“ A10”中)。 這是因為我要從不同的Store#復制工作簿中第一張工作表(“約會”)中的行,然后刪除第二張工作表(“發票”)數據所在區域上方的空行。 有些商店可能會返回10行或根本不返回。 案例,即商店編號,目前是手動逐一放入的。 應該是數組嗎?
無論如何...我希望自動化每個商店的復制/粘貼和循環到其工作表。 也許我要解決這個錯誤,但是有人會建議如何解決我的錯誤代碼“找不到方法或數據成員”。 以及提供任何有關使我的代碼更好的建議,以使循環將過濾后的單元格復制到每張紙的不同位置。
我的逐步過程的簡單說明:
1.從“約會”表中過濾商店編號。
2.復制該商店的所有行,然后粘貼到B3中名為“ Sheet1”的模板的新工作表中。
3.從“發票”表中過濾商店編號。
4.復制該商店的所有行,並將其粘貼到上述行下方的先前制成的名為“ Sheet”的工作表中。 (某些商店沒有發票,因此此部分為空白/ NULL)。 每個商店的“發票”的粘貼目標單元格將有所不同,具體取決於它們從“約會”表中獲得的行數(可以是A10或A25)。
5.循環-下一個存儲號,下一張紙(sheet2)。
Sub CopyToNewSheetInv()
Dim i As Range
Dim book As Workbooks
Dim sheet1 As Worksheets
Dim sheet2 As Worksheets
Set book = Workbooks("SampleWorkbookName")
Set sheet1 = Worksheets("AllInvoices")
Set sheet2 = Worksheets("Sheet1")
For Each i In sheet1.Range("H:H")
Select Case i.Value
Case 1243
sheet2.Range("A10").End(xlUp).Offset(1, 0).EntireRow.Value = i.EntireRow.Value
Case Else
End Select
Next i
End Sub
嘗試這個:
Sub CopyToNewSheetInv()
Dim i As Range
Dim book As Workbook
Dim sheet1 As Worksheet
Dim sheet2 As Worksheet
Set book = Workbooks("SampleWorkbookName.xlsx")
Set sheet1 = book.Worksheets("AllInvoices")
Set sheet2 = book.Worksheets("Sheet1")
'iterate only thorugh those cells in H that have data, not all 1.04 million
For Each i In sheet1.Range("H1", sheet1.Range("H" & sheet1.Rows.Count).End(xlUp))
Select Case i.Value
Case 1243,"1243"
sheet2.Rows(sheet2.Range("A10000").End(xlUp).Offset(1, 0).Row).Value = sheet1.Rows(i.Row).Value
Case Else
End Select
Next i
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.