excel - 对象变量或块变量错误vba excel宏
问题描述
我正在研究一个在不同范围内循环的宏(O2 直到最后一张表中 O 行中最后使用的单元格),并将每个值复制到一个名为“Overview”的表中,向下偏移 3 行并在最后一列后面的列中如果该值不为 0,则在“概述”中使用列。之后,如果范围内有任何值不是 0,我想将 o1 从最后一张表复制到最后使用的列后面的列中的第一个单元格工作表“概述”(将包括标题)。我基于我已经在其他正在工作的宏中使用的其他代码片段构建了一些代码,并相应地更改了行和列。但是,现在我得到一个对象变量或块变量未设置错误。我找不到错误,有人可以帮助我并告诉我我需要改变什么(也许还有如何改变?)。
Sub Sendmemoremetrics()
'
' Sendmemoremetrics Macro
'
Dim cRange As Range
Dim valuessendmemore As Range
Dim Cell As Range
Dim wsDestination As Worksheet, wsSource As Worksheet
'set worksheets
With ThisWorkbook
Set wsSource = .Worksheets(Sheets.Count)
Set wsDestination = .Worksheets("Overview")
End With
LastRow1 = Sheets(Sheets.Count).Cells(Rows.Count, "O").End(xlUp).Row
LastColumn1 = wsDestination.Cells(5, wsDestination.Columns.Count).End(xlToLeft).Column
cRange = wsSource.Range(wsSource.Cells(2, 15), wsSource.Cells(LastRow1, 15))
For Each Cell In cRange
If Cell.Value > 0 Then
wsDestination.Cells(Cell.Row, LastColumn1).offset(3, 1) = Cell.Value
Sheets(Sheets.Count).Range("O1").Select
Selection.Copy
Sheets("Overview").Range(4, LastColumn1).Paste
End If
Next Cell
Call format_headlines
End Sub
解决方案
正如@FaneDuru 已经回答的那样,请尝试:
Set cRange = wsSource.Range(wsSource.Cells(2, 15), wsSource.Cells(LastRow1, 15))
范围对象应显式“设置”
推荐阅读
- excel - 如何更改超链接的名称?
- android - 迁移到应用中心后无法发布静默应用更新,带我去微软页面注册
- sql - 在SQL中的字符串中的两个字符之间选择一个字符串
- linux - 如何从 /bin 的随机选择中调用带有程序名称的 whatis 命令?
- tensorflow - 保存和恢复自定义模型 tensorflow
- javascript - 如何将两个数组的值传递给 Javascript 函数中的标识符?
- java - 如何每隔 s 秒调用一次方法
- python - 如何使用 Python 中的 Arduino 和 Tkinter 根据给定时间输入一个时间表,其中将在其中打开和关闭
- python - Jupyter 安装错误:命令错误退出状态为 1
- tensorflow - 我应该对 3D 灰度图像使用 2D 还是 3D 卷积?