質問

私は、セルの列を循環し、そのセル内の2文字の国コードをその国の名前に置き換えるマクロを構築しようとしています。ただし、マクロを実行しようとすると、オブジェクトが見つかりません。

Sub ChangeCountryText()
'
' ChangeCountryText Macro
' Changes country codes
'
    For counter = 2 To 20
        Set curCell = ActiveSheet.Cells(counter, 1)
        Select Case curCell.Text
            Case "JP"
                curCell.Text = "Japan"
            Case "FR"
                curCell.Text = "France"
            Case "IT"
                curCell.Text = "Italy"
            Case "US"
                curCell.Text = "United States"
            Case "NL"
                curCell.Text = "Netherlands"
            Case "CH"
                curCell.Text = "Switzerland"
            Case "CA"
                curCell.Text = "Canada"
            Case "CN"
                curCell.Text = "China"
            Case "IN"
                curCell.Text = "India"
            Case "SG"
                curCell.Text = "Singapore"
        End Select
    Next counter

End Sub
役に立ちましたか?

解決

テキストプロパティは読み取り専用です - 設定できません。値プロパティに割り当てると機能するはずです(例: curCell.Value = "Japan")

他のヒント

これにマクロを使用する大きな理由があると確信していますが、マクロを書くことなくこのようなことをする方法として、ルックアップまたはvlookupワークシート機能を調べたいと思うかもしれません。

エディターのマクロテキストの左側にクリックして、ラインに赤い点を置くことでデバッガーを入力できるはずです

For counter = 2 To 20

次に、エラーに到達するまでマクロを踏み出すことができます。

または、マクロにエラー処理を追加することもできます

On Error Goto Failed

上部と最後のサブ追加

Failed: 
'handle error here

「Object Not Found」はCurcell.Text Call(Curcellがnull、Noth、または無効なので、.textを呼び出すことが失敗します)またはActiveSheet.cells呼び出し(これが起こるかどうかはわかりません)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top