0

私はいくつかの非常に簡単なコードでいくつかの問題に遭遇しています。複数の投稿やフォーラムを読みましたが、問題を見つけることができないようです:

Sub ownership()
 Dim row, column, x, y As Integer
 For row = 2 To 42
  For column = 4 To 18
   For x = 2 To 16
    For y = 5 To 45
     If ActiveWorkbook.Sheets("orka").Cells(3, row).Text = Left(ActiveWorkbook.Sheets("values").Cells(x, y).Text, ActiveWorkbook.Sheets("orka").Cells(2, row).Value) Then ActiveWorkbook.Sheets("orka").Cells(column, row).Text = "X"
    Next
   Next
  Next
 Next
End Sub

どうもありがとうございます

4

1 に答える 1

0

これは.Text、読み取り専用プロパティであるためです。.Value代わりに使用してください。あなたは言うことができません

Range("A1").Text = "Blah Blah"

ただし、これを行うことができます

MsgBox Range("A1").Text

これを試して

Option Explicit

Sub ownership()
    Dim row  As Integer, column  As Integer, x  As Integer, y As Integer

    For row = 2 To 42
        For column = 4 To 18
            For x = 2 To 16
                For y = 5 To 45
                    If ActiveWorkbook.Sheets("orka").Cells(3, row).Value = _
                    Left(ActiveWorkbook.Sheets("values").Cells(x, y).Text, _
                    ActiveWorkbook.Sheets("orka").Cells(2, row).Value) Then _
                    ActiveWorkbook.Sheets("orka").Cells(column, row).Value = "X"
                Next
            Next
        Next
    Next
End Sub

変数を次のように宣言する場合もVBAで

Dim row, column, x, y As Integer

次に、この場合の最後の変数のみがyInteger として宣言され、残りは として宣言されVariantます。正しい方法は、上記で行ったように宣言することです。

HTH

于 2012-04-12T15:29:43.557 に答える