對於這個問題的大範圍和我可能創建的任何模糊情況,我都會提前道歉。我想要創建一個宏,它可以在表格中生成一個宏,並且如果在該行的不同列中滿足特定條件而將另一個單元格值複製到另一個表中的表中。Excel VBA:將表格中的單元格值複製到另一張表上的表格,條件爲
基本上,如果條件等於表A中列C中的X,則將表A中列B的數字複製到表B中的列B.存在2k +行。表A中的列C始終爲空或等於X,並且表A中的列B從不爲空,直到列表結束。表B中的列B是空白的,並且行數將由從表A複製到它的行的數量確定。
我確定這將需要一個循環,但是對於VBA來說是新的,我是不確定我需要哪種循環類型以及循環邏輯應該如何查看。我懷疑Do Until是最容易的,因爲表A中沒有空白,直到列表結尾。目前爲止我的最佳猜測:
Dim wsPAPS As Range
Dim wsPAVA As Range
Dim wsVNPN As Range
Dim wkATTR As Workbook
Set wkATTR = Workbooks("PARCEL_ATTR_MACRO-TEST.xlsm")
Set wsPAPS = Sheets("PARCEL_ATTR_BASE").Range("PARCELSTAT")
Set wsPAVA = Sheets("PARCEL_ATTR_BASE").Range("APO_VA_Properties_Vacant_Abandoned")
Set wsVNPN = Sheets("VA_NAME").Range("L1_PARCEL_NBR")
Do
If wsPAVA = "Vacant/Abandoned" Then
wsVNPN = wsPAPS
End IF
Loop Until wsPAPS = ""
請注意,此代碼實際上並不工作;我被告知我有一個沒有做的循環,不知道爲什麼。
我會非常感謝任何幫助。謝謝,所有!
UPDATE帶有Range變量的意圖是試圖使引用特定列變得容易,但我得到了一個應用程序定義或對象定義的錯誤。
您需要使用DO WHILE(條件),然後在最後說,「循環」 http://www.excelfunctions.net/VBA-Loops.html – peege 2014-12-02 23:41:16