2015-11-05 20 views
1

我在列A中有一個範圍,並且我想爲範圍A的每個元素寫入單元格B中的某個東西。我正在使用此代碼,但它似乎不起作用:從列A複製範圍並寫入列B

LastRow = Cells(Rows.Count, "A").End(xlUp).Row 
    Set rng2 = Range("A:A" & LastRow).Select 

    For Each Cell In rng2 
     Cell.Offset(1, 0).FormulaR1C1 = "=isOK" 
    Next Cell 

我想在B列寫在A中的最後一個單元格是1887年:

enter image description here

任何人都可以幫助嗎?

回答

1

我糾正你的代碼,不妨一試:

Dim Cell as Range, LastRow As Long 
LastRow = Cells(Rows.Count, "A").End(xlUp).Row 
Set rng2 = Range("A2:A" & LastRow) 

For Each Cell In rng2 
    If Cell.Value <> vbNullString Then Cell.Offset(0, 1) = "isOK" 
Next Cell 
+0

這給了我一個調試錯誤,如果Cell.Value <> vbNullString然後...它說類型不匹配 – Nant

+0

從你附加的圖片,它看起來像列A是字符串值,如「331 HK」 ,它不適用於數字。 –

+0

我編輯了我的答案,我想你想在B列中有「isOK」值,而且這不是函數。 –

1

設置RNG2 =範圍( 「答:」 & LASTROW)。選擇

這應設置RNG2 =範圍( 「A :A」 & LASTROW)

和你的偏移電池下方,應爲(0,1)

1

避免使用盡可能選擇,這是一個麻煩來源。在這段代碼中,你不需要使用它。 我想這ISOK是一個用戶定義的函數(UDF):

LastRow = Cells(Rows.Count, "A").End(xlUp).Row 
    Set rng2 = Range("A2:A" & LastRow) 
    For Each Cell In rng2 
     If not IsEmtpy(Cell) Then Cell.Offset(1, 0).Formula = "=isOK()" 
    Next Cell 
+0

這給了我一個調試錯誤,如果Cell.Value <> vbNullString然後......它說類型不匹配 – Nant

+0

@Nant確定PLZ嘗試編輯的代碼,使用IsEmpty(單元格)。正如我在答案中所說的,我認爲isOK()是在某些代碼模塊中定義的UDF。是這樣嗎? –

1

嘗試,更好地與正常Excel公式:

=if(lookup(A1;C1:Z20)=0;"isOK";"notOK") 

複製到每一個細胞在B列,你會得到你預期的結果;)