2017-09-15 7 views
0

Excelのスプレッドシートに複数のタブがある場合、次のコードを作成しています。さまざまなセキュリティタイプと「はい」または「いいえ」のいずれかのフィールドを示すテーブルを持つ別のタブでVlookupを実行することになっています。フィールドに応じて、BDP機能を実行するか、「#N/AフィールドNot Applicable」を返します。If、VlookupステートメントとMatchステートメントを使用していますが、「コンパイルエラーが発生しました:ステートメントの終わり」

私は二重引用符を使用してみましたが、それでも次の行の後にエラーが表示さ

Cells(r, c)"=If(VLOOKUP(EQUITY, 'Mandatory Field Control'!$A$1:$CA$7, MATCH(B4,'Mandatory Field Control'!$B$1:$CA$1), FALSE)=""Yes"", ""=BDP(RC1,R1C)"", ""#N/A Field Not Applicable"")"" 

どのように私はこの問題を解決することができていますか私は任意の引用符を欠場しましたか?

VBA以下:

r = 2 
While Cells(r, "A") <> "" 
    c = 2 
    For c = 2 To 79 
        'Cells(r, c) = "=BDP(Cells(" & r & "," & c & "), Cells(1," & c & "))" 
     If InStr(RC1, "EQUITY") <> 0 Then 

      Cells(r, c)"=If(VLOOKUP(EQUITY, 'Mandatory Field Control'!$A$1:$CA$7, MATCH(B4,'Mandatory Field Control'!$B$1:$CA$1), FALSE)=""Yes"", ""=BDP(RC1,R1C)"", ""#N/A Field Not Applicable"")" 

     ElseIf InStr(RC1, "GOVT") <> 0 Then 

      Cells(r, c)"=If(VLOOKUP(GOVT, 'Mandatory Field Control'!$A$1:$CA$7, MATCH(B4,'Mandatory Field Control'!$B$1:$CA$1), FALSE)=Yes, ""=BDP(RC1,R1C)"", ""#N/A Field Not Applicable"")" 

     ElseIf InStr(RC1, "CORP") <> 0 Then 

      Cells(r, c)"=If(VLOOKUP(CORP, 'Mandatory Field Control'!$A$1:$CA$7, MATCH(B4,'Mandatory Field Control'!$B$1:$CA$1), FALSE)=Yes, ""=BDP(RC1,R1C)"", ""#N/A Field Not Applicable"")" 

     ElseIf InStr(RC1, "INDEX") <> 0 Then 

      Cells(r, c)"=If(VLOOKUP(INDEX, 'Mandatory Field Control'!$A$1:$CA$7, MATCH(B4,'Mandatory Field Control'!$B$1:$CA$1), FALSE)=Yes, ""=BDP(RC1,R1C)"", ""#N/A Field Not Applicable"")" 

     ElseIf InStr(RC1, "COMDTY") <> 0 Then 

      Cells(r, c)"=If(VLOOKUP(COMDTY, 'Mandatory Field Control'!$A$1:$CA$7, MATCH(B4,'Mandatory Field Control'!$B$1:$CA$1), FALSE)=Yes, ""=BDP(RC1,R1C)"", ""#N/A Field Not Applicable"")" 

     ElseIf InStr(RC1, "MTGE") <> 0 Then 

      Cells(r, c)"=If(VLOOKUP(MTGE, 'Mandatory Field Control'!$A$1:$CA$7, MATCH(B4,'Mandatory Field Control'!$B$1:$CA$1), FALSE)=Yes, ""=BDP(RC1,R1C)"", ""#N/A Field Not Applicable"")" 

エンドあなたは使うべき

Next c 
    r = r + 1 
Wend 
+1

それは '細胞でなければなりません(R、C).Formula = "=たら..."' –

+0

それ – Jeeped

答えて

1

場合:

Cells(r,c).Formula = "=Formula Here" 

編集:また、あなたは

Yes周りに二重引用符が欠落しているしなければなりません
MATCH(B4,'Mandatory Field Control'!$B$1:$CA$1), FALSE)=Yes 

すべての行が最初の行です。 ジープによれば、Matchの機能は、0、または1/-1を含むように更新する必要があります。私も読みやすくするためSelect Caseの代わりIf Thenを使用する個人の好みの問題として

は:

Select Case True 
    Case(RC1 Like "*EQUITY*") 'I assume RC1 is a variable 
     Cells(r,c).Formula = "=Formula here" 
    Case(RC1 Like "*GOVT*") 
     Cells(r,c).Formula = "=Formula here" 
     ... 
End Select 
+0

私は具体的ではありませんでしたが、MATCHに関する私のコメントには、$ B $ 1:$ CA $からの変更も含まれていました。(これはB4の '必須フィールド制御'!$ A $ 1:$ CA $ 1、0) 'を' $ A $ 1:$ CA $ 'に変更します。当然のことながら、OPは意図的に1列分オフセットしたいと考えました。 – Jeeped

+0

私は変更を提案したので、エラーは表示されなくなりました。私は実際にVBAの実行に問題があります。私がそれを実行すると、出力がありません(すなわち、BDP関数またはN/Aフィールドは、Excelには適用されません) RC1は、セルを参照することを意味し、現時点ではr = 2です。 C = 2である。この場合、RC1はB1とする。私はそれを正しく言及しているかどうかわからないのですか? –

関連する問題