错误13不匹配 - 用于循环单元格值

时间:2013-07-11 14:16:52

标签: excel excel-vba vba

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

我无法弄清楚这一点,我正在尝试制作一个VB代码,它从单元格“C38”获取值,将其除以20,然后将这些值粘贴到单元格F16中 - > F36。到目前为止一切都很好,但是当涉及到:

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

我一直收到Mismatch 13错误。

3 个答案:

答案 0 :(得分:1)

.Cells()方法将Row和Column作为整数。你不能传递像#34; A2"这样的字符串。如果要使用它来访问单元格,请使用该单元格的行号和列号。

例如:选择单元格" A2":

Cells(1,2).Select

所以在你的情况下你想要:

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

因为F是第6个字母。您可以通过嵌套循环使用它来循环遍历单元格块。

或者你可以使用MattHead93描述的Range()方法。

答案 1 :(得分:0)

For Counter = 16 To 46
    Worksheets("Single L Angle").Range("F" & Counter).Value = rowsnum * k
    k = k + 1
Next Counter

这有效吗?

答案 2 :(得分:0)

您可以使用

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

或者

Worksheets("Single L Angle").range("F" & format(counter)).Value = rowsnum * k