我嘗試在一個范圍內使用一個變數,目的是只做必要的行而不是做一個預先確定的范圍。
我不知道為什么它不會讓我這樣寫
如果有人能幫助我解決這個問題,將不勝感激!
Row = Sheets("Checklist").Range("V2").End(xlDown).Row
Parts = 4
For PN = 2 To Row
Sheets("Checklist").Range(Cells(PN, 22), Cells(PN, 24)).Copy
Sheets("Pipeline").Cells(Parts, 4).PasteSpecial
Parts = Parts 1
Next PN
Application.CutCopyMode = False
End Sub
編輯:
好的,所以我真的很感謝你們給我的所有幫助,我會嘗試解釋代碼的目的。
我收到一份新的零件訂單表,需要提交到資料庫的專案數量因訂單而異。
布局有點像這樣:
____V___________________________X
1| 零件________版本___年產量
2| 123 __________ A ___________ 100
3| 456 __________ B ___________ 200
4| 789 __________ C ___________ 300
我首先嘗試做的是逐行復制以創建某種回圈,其中有人提出這沒有必要,而您是對的。
但是,我仍然需要復制整個表格并將其帶到資料庫表中。
為此,我使用了以下代碼:
LastRow = Sheets("Checklist").Range("V2").End(xlDown).row
If Sheets("Pipeline").Range("D4") = "" Then
Parts = 4
GoTo CopyPaste
ElseIf Sheets("Pipeline").Range("D5") = "" Then
Parts = 5
GoTo CopyPaste
Else
Parts = Sheets("Pipeline").Range("D4").End(xlDown).row 1
End If
CopyPaste:
' This is the line of code that I'm having problems, it keeps giving me an 1004 error'
->Sheets("Checklist").Range(Cells(2, 22), Cells(LastRow, 24)).Copy
Sheets("Pipeline").Cells(Parts, 4).PasteSpecial xlPasteValues
Application.CutCopyMode = False
End Sub
uj5u.com熱心網友回復:
如果我們知道您要復制和過去的內容會更容易,因為您復制了一個范圍并將其粘貼到一個單元格中,這是一個合并的范圍嗎?
如果是這種情況,您不需要使用 .Copy,您可以執行類似的操作:
my_Row = Sheets("Checklist").Range("V2").End(xlDown).Row
Parts = 4
For PN = 2 To my_Row
Sheets("Pipeline").Cells(Parts, 4) = Sheets("Checklist").Cells(PN, 22)
Parts = Parts 1
Next PN
End Sub
uj5u.com熱心網友回復:
您看到的問題可能出在這一行:
Sheets("Checklist").Range(Cells(PN, 22), Cells(PN, 24)).Copy
您Cells(PN, 22)沒有資格使用特定的作業表。
但是,您似乎無緣無故地創建了一個回圈,為什么不一次性復制整個塊呢?
Sheets("Pipeline").Cells(Parts, destinationRow).Resize(3, lastRow - firstRow 1).Value = _
Sheets("Checklist").Range(Sheets("Checklist").Cells(firstRow, 22), Sheets("Checklist").Cells(lastRow, 24)).Value
為了整理一下,以下應該有效:
'Declare variables
Dim firstRow As Long, lastRow As Long, destinationRow As Long
'Set variables
firstRow = 2
lastRow = Sheets("Checklist").Range("V2").End(xlDown).Row
destinationRow = 4
destinationColumn = 4
'Copy data
With Sheets("Checklist")
Sheets("Pipeline").Cells(destinationColumn, destinationRow).Resize(3, lastRow - firstRow 1).Value = _
.Range(.Cells(firstRow, 22), .Cells(lastRow, 24)).Value
End With
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/364864.html
上一篇:文本到列-逗號問題
