下标超出范围在表格之间复制,VBA

时间:2019-04-07 12:38:36

标签: excel vba

我在一张纸上有一个问题库,我必须随机选择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

1 个答案:

答案 0 :(得分:1)

您的代码的主要问题是您使用了无效的双引号。从您的代码中可以明显看出,您正在同时使用这两者

Range(“A1”).Value = "Heading"

更改为",您的代码将起作用,否则您将获得下标超出范围错误。

要重现错误,您可以在立即窗口中尝试

?Sheets(“Sheet1”).Name '<~~ This will give you the error.
?Sheets("Sheet1").Name