我在一张纸上有一个问题库,我必须随机选择10个问题,并生成没有重复问题的问题文件。我收到下标超出范围的错误。下面是代码:错误以粗体突出显示
Private Sub CommandButton1_Click()
Dim i, RowNum
Sheets("Sheet1").Range("A:A").ClearContents
For i = 1 To 10
generate:
RowNum = Application.RoundUp(Rnd() * 10, 0)
Cells(i, 3).Value = RowNum
**If Application.CountIf(Sheets(“Sheet1”).[A:A],
Sheets(“Sheet2”).Cells(RowNum, “A”)) = 0 Then**
Sheets(“Sheet1”).Range(“A” & Rows.Count).End(xlUp).Offset(1).Value =
Sheets(“Sheet2”).Cells(RowNum, “A”).Value
Else
GoTo generate
End If
Next i
Sheets(“Sheet1”).Select
Range(“A1”).Value = "Heading"
Range(“A1”).Font.Bold = True
Range(“A1”).Columns.AutoFit
Range(“B1”).Select
End Sub
答案 0 :(得分:1)
您的代码的主要问题是您使用了无效的双引号。从您的代码中可以明显看出,您正在同时使用这两者
Range(“A1”).Value = "Heading"
将“
和”
更改为"
,您的代码将起作用,否则您将获得下标超出范围错误。
要重现错误,您可以在立即窗口中尝试
?Sheets(“Sheet1”).Name '<~~ This will give you the error.
?Sheets("Sheet1").Name