Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 错误';91';:对象变量或未设置块变量_Excel_Runtime Error_Vba - Fatal编程技术网

Excel 错误';91';:对象变量或未设置块变量

Excel 错误';91';:对象变量或未设置块变量,excel,runtime-error,vba,Excel,Runtime Error,Vba,我目前正试图修改一些预先编写的代码,因此创建了一个虚拟文件。当我尝试运行一些测试样本时,我遇到以下错误: 运行时错误“91”:未设置对象变量或带块变量 您可以在下面找到代码摘录 Sub Button1_Click() Dim wb As Workbook Dim ws As Worksheet Dim count As Integer count = 0 Do While CDate(ws.Cells(2 + count, 1).Value) <= CDate(DateAdd("d",

我目前正试图修改一些预先编写的代码,因此创建了一个虚拟文件。当我尝试运行一些测试样本时,我遇到以下错误:

运行时错误“91”:未设置对象变量或带块变量

您可以在下面找到代码摘录

Sub Button1_Click()

Dim wb As Workbook
Dim ws As Worksheet
Dim count As Integer

count = 0
Do While CDate(ws.Cells(2 + count, 1).Value) <= CDate(DateAdd("d", 14, Now()))
    count = count + 1
    ws.Range("A" & count + 1).Interior.Color = RGB(250, 50, 50)
    If CDate(ws.Cells(1 + count, 1).Value) <> CDate(ws.Cells(1 + count, 2).Value) Then
        If ws.Range("C" & count + 1) <> "In Sub" Then
            ws.Range("C" & count + 1).Interior.Color = RGB(250, 50, 50)
        Else
            ws.Range("C" & count + 1).Interior.ColorIndex = 44
        End If
    End If
Loop
...

End Sub
我想我没有正确定义对象,有人能帮我解决这个问题吗

提前谢谢!
亲切问候

在声明之后,您需要执行以下操作:

Set wb = ActiveWorkbook
Set ws = wb.Sheets("name")
' if wb is other than the active workbook
 wb.activate
 ws.Select

Dim ws-As工作表之后
直接在
Do-While
循环中使用
ws.Cells
。你有中间的代码吗?不,我没有,但是下面由bilpor提供的答案有效。无论如何,谢谢你的努力。成功了,谢谢!但是我得到了一个溢出错误。如果excel工作表中出现空白字段,如何停止循环?您需要引入错误处理程序。在错误代码的顶部转到errorRoutine,然后在代码底部退出sub,接着是errorRoutine:现在您可以处理可能出现的各种错误。谷歌VBA错误处理,有很多例子
Set wb = ActiveWorkbook
Set ws = wb.Sheets("name")
' if wb is other than the active workbook
 wb.activate
 ws.Select