0
Sub Button53_Click()

Dim rowsvalue As Integer
Dim rowsnum As Integer

rowsvalue = Sheet1.Range("C38").Value
rowsnum = Math.Round(rowsvalue / 20, 1)

k = 0

For Counter = 16 To 46
    Worksheets("Single L Angle").Cells("F", Counter).Value = rowsnum * k
    k = k + 1
    Next Counter
End Sub

セル「C38」から値を取得し、それを20で割り、それらの値をセルF16-> F36に貼り付けるVBコードを作成しようとしています。これまでのところすべて問題ありませんが、次の点については次のとおりです。

Worksheets("Single L Angle").Cells("F", Counter).Value = rowsnum * k

Mismatch 13 エラーが発生し続けます。

4

3 に答える 3

1

.Cells() メソッドは、Row と Column を整数として受け取ります。「A2」のような文字列を渡すことはできません。それを使用してセルにアクセスする場合は、そのセルの行番号と列番号を使用します。

例: セル "A2" を選択:

Cells(1,2).Select

あなたの場合、あなたが望む:

Worksheets("Single L Angle").Cells(Counter,6).Value = rowsnum * k

Fは6文字目だから。これを一般的に使用して、ループをネストすることでセルのブロックをループできます。

または、MattHead93 で説明されている Range() メソッドを使用することもできます。

于 2013-07-11T14:37:53.870 に答える
0

使用できます

Worksheets("Single L Angle").Cells(Counter,6) = rowsnum * k

または

Worksheets("Single L Angle").range("F" & format(counter)).Value = rowsnum * k
于 2013-07-11T15:27:00.970 に答える
0
For Counter = 16 To 46
    Worksheets("Single L Angle").Range("F" & Counter).Value = rowsnum * k
    k = k + 1
Next Counter

これでうまくいきますか?

于 2013-07-11T14:33:25.900 に答える