2017-06-27 19 views
0

私はVBAを初めて使い、この作業を達成するためにできることすべてを試しています。しかし、運がない。列と状態の略語をフル状態の名前にマージ

私の目標は、国内の住所に列H(州)&列G(都市)&を ' - 'と組み合わせることです。すべての米国の略語を完全名で置き換えています。

また、国際的なアドレスのため、組み合わせる柱J(国)+ ' - ' + G列(市)私は、コードを実行すると、それは私にコンパイルエラー与えて

Sub Move_City() 

Sheets("Sheet1").Select 
Rows("1:26").Select 
Selection.ClearContents 

Dim sh As Worksheet 
Dim Row As Long 
Dim CurrentRow As Long 
Dim rng As Range 
Dim StateNm("J") As String 

    Select Case TCASE("J") 
    Case "CA": StateNm = "California" 
    Case "NY": StateNm = "Newyork" 

    Set sh = Sheets("Sheet1") 

    For Each rng In Cells(Column.Count, "J") 

    If Columns("J").Cells = "United States" Then 
    sh.Range("W").Value = "J" & " - " & "StateNm" 

    ElseIf Columns("J").Cells <> "United States" Then 
    sh.Range("W").Value = "J" & " - " & "G" 


End Sub 

:によって、型の不一致をハイライトStateNm("J") As String。誰も私にこのエラーに関する助言を与えることができますか?

ご協力いただければ幸いです。事前にありがとうございました!

+0

コメントありがとうございました@ScottCranerを。質問が更新されます! –

+0

'Dim StateNm(" J ")As String'で何をしようとしていますか?あなたの考え方をここで説明してください。それは間違っていますが、あなたが何をするためにあなたが何を意味するのかを知る必要があります。 –

+0

@ScottCraner StateNm変数を宣言し、Jが括弧に入れられるようにしたいのは、その列が州の略語がある場所なのでです。フォローアップをお気軽に!私は応答します! –

答えて

0

あなたは、国内および国際のためのCountry - CityためState - CityでW列を更新するために探しているなら、あなたはこのような何かしてみてください可能性があります

Sub Move_City() 
    Dim i As Integer 
    Range("W2", Range("W2").End(xlDown)).ClearContents 
    For i = 2 To WorksheetFunction.CountA(Columns(10)) 'assuming 1st row is for heading and there's no blank row in between 1st & last non-blank row 
     If Range("J" & i) = "United States" Then Range("W" & i) = StateNm(Range("H" & i)) & " - " & Range("G" & i) 
     If Range("J" & i) <> "United States" Then Range("W" & i) = Range("J" & i) & " - " & Range("G" & i) 
    Next i 
End Sub 
Function StateNm(s As String) As String 
    Select Case s 
     Case "CA": StateNm = "California" 
     Case "NY": StateNm = "Newyork" 
    End Select 
End Function 
+0

ありがとうございました! –

関連する問題