2017-06-19 6 views
-1

ための複数の条件私は実行することはできません。このコードの問題を解決しようとしている:VBA - 各セル

'======================================================================== 
' CHECKS IF MARKET SECTOR IS EMPTY (FOR LEDGER) 
'======================================================================== 

Private Sub Fill_MarketSector() 

Dim LastRow As Long 
Dim rng As Range, C As Range 

With Worksheets("Ready to upload") ' <-- here should be the Sheet's name 
    LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row ' last row in column A 
    Set rng = .Range("A2:A" & LastRow) ' set the dynamic range to be searched 
    Set rng2 = .Range("F2:F" & LastRow) 

    ' loop through all cells in column A and column F 
    For Each C In rng and For Each C in rng2 
     If rng.C.Value = "Ledger" and rng2.C.value IsEmpty Then 
      C.Value = "599" ' use offset to put the formula on column "L" 
     End If 
    Next C 
End With 

End Sub 

列Aは、単語「元帳」と列Fが含まれている場合、コードをチェックする必要があります空である場合は、列 "F" 599に入れる必要があります。常に最後の行にチェックする必要があります。私を手伝ってくれますか?

ありがとうございます!

+0

再:「\ * 'は列Fに入れなければなりません "599"' * - 列Fまたは列L?あなたの物語はあなたのコードのコメントと競合します。 – Jeeped

+0

どのようなエラーが表示されますか?あなたが立ち往生している場所に関する情報を提供する。 – PankajR

+0

あなたは正しいです、私はコメントとコードの間に相違がありました。 構文エラーが表示され、コードのこの部分がハイライト表示されています。 rng2の各CについてrとFor each Cについて rng.C.Value = "Ledger "とrng2.C.value IsEmpty Then – Srpic

答えて

0

あなたは、列Aのセルをループして、列Fのため.Offsetを使用して、列F内伴うセルにアクセスすることができ、列Lに値を入れて、再びオフセット

' loop through all cells in column A and column F 
For Each C In rng 
    If LCase(C.Value) = "ledger" and IsEmpty(C.Offset(0, 5) Then 
     C.Offset(0, 11) = 599 'use offset to put the number on column "L" 
    End If 
Next C 
+0

ありがとう!それはスムーズに動作します。 IsEmpty(C.Offset(0、5))の後ろに区切り記号がありませんでした。どうもありがとうございました! – Srpic

+0

残念ながら、それはたまにしか動作しません。ほとんどの場合、何もしません。なぜあなたは考えているのですか? – Srpic

+0

*「時にはうまくいく」* - これは有効なエラーコードでも、エラーの有効な説明でもありません。どちらもこれではありません。* 'ほとんどの時間は、何もしません' *。 [mcve]を読んだ後にサンプルデータを供給してください。 – Jeeped