将宏复制到新工作簿时,Excel VBA运行时错误91
下面的代码导致了一个错误 运行时错误“91”:未设置对象变量或带块变量 这段代码在我创建它的Excel工作簿中运行良好,但当我将其复制并粘贴到另一个Excel工作簿时,会出现错误 错误在第行将宏复制到新工作簿时,Excel VBA运行时错误91,excel,vba,Excel,Vba,下面的代码导致了一个错误 运行时错误“91”:未设置对象变量或带块变量 这段代码在我创建它的Excel工作簿中运行良好,但当我将其复制并粘贴到另一个Excel工作簿时,会出现错误 错误在第行 LastRow = Cells.Find(What:="*", _ 有人知道为什么吗 我试图在声明变量后将其设置为一个值,但这无法解决问题 Sub mileStoneDatePivot() Dim r As Long, pasteRowIndex As Long, v() As Long, i A
LastRow = Cells.Find(What:="*", _
有人知道为什么吗
我试图在声明变量后将其设置为一个值,但这无法解决问题
Sub mileStoneDatePivot()
Dim r As Long, pasteRowIndex As Long, v() As Long, i As Long
Dim LastRow As Long
Dim lCol As Long
'Insert a New Blank Worksheet
On Error Resume Next
Application.DisplayAlerts = False
Worksheets("PivotTable").Delete
Sheets.Add Before:=ActiveSheet
ActiveSheet.Name = "DataSheet"
Application.DisplayAlerts = True
'Switch off error masking
On Error GoTo 0
'This sheet is where data should originate
Sheets("DCC_AGGREGATOR_FLATFILE").Rows("1").Copy Sheets("DataSheet").Range("A1")
LastRow = Cells.Find(What:="*", _
After:=Range("A1"), _
LookAt:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Row
Find
在找不到您请求的内容时返回Nothing
。当您要求它在空白页上查找
*
(任何内容)时,它不返回任何内容-它找不到任何内容。当您要求它返回空的行号时,它会给出您收到的错误消息 要避免此错误,请将
Find
的结果传递给范围变量:
Dim rLastRow as Range
Set rLastRow = Cells.Find(What:="*", _
After:=Range("A1"), _
LookAt:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False)
然后,您可以在获取行号之前检查范围是否为零:
If Not rLastRow Is Nothing Then
LastRow = rLastRow.Row
End If
我建议看一篇关于找到最后一个单元格的帖子,然后将整个内容拉到一个单独的功能中。编辑:此外,您的
查找只查看活动表。
LastRow=thiswook.worksheet(“数据表”).Cells.Find….
将始终查看工作簿中包含代码的数据表。Find
在找不到您请求的内容时,将返回Nothing
。
当您要求它在空白页上查找*
(任何内容)时,它不返回任何内容-它找不到任何内容。
当您要求它返回空的行号时,它会给出您收到的错误消息
要避免此错误,请将Find
的结果传递给范围变量:
Dim rLastRow as Range
Set rLastRow = Cells.Find(What:="*", _
After:=Range("A1"), _
LookAt:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False)
然后,您可以在获取行号之前检查范围是否为零:
If Not rLastRow Is Nothing Then
LastRow = rLastRow.Row
End If
我建议看一篇关于找到最后一个单元格的帖子,然后将整个内容拉到一个单独的功能中。
编辑:此外,您的查找只查看活动表。
LastRow=thiswook.Worksheets(“数据表”).Cells.Find….
将始终查看包含代码的工作簿中的数据表。错误在哪一行?很抱歉,它位于第LastRow=Cells.Find行(内容:=“*”,
代码运行时工作表是否为空?错误在哪一行?很抱歉,它位于第LastRow=Cells行。查找(What:=“*”,
代码运行时工作表是否为空?