excel - VBA:获取运行时 1004:对象“_Worksheet”的方法“范围”失败。它没有复制到范围
问题描述
这是代码:
Sub RunFilter()
Dim LastRow As Long, LastCritRow As Long, LastResultRow As Long
Sheet1.Range("C31:AH365").ClearContents 'Clear Existing Results
With Sheet2
If Sheet1.Range("L27").Value = "Enter name." Then LastCritRow = 2 'Determine Last Criteria Row
LastRow = .Range("A9999").End(xlUp).Row 'Last Row of Data
.Range("A2:AF" & LastRow).AdvancedFilter xlFilterCopy, CriteriaRange:=.Range("AI2:BN" & LastCritRow), CopyToRange:=.Range("BQ2:CV2"), Unique:=False
LastResultRow = .Range("BQ999").End(xlUp).Row 'Last Results Row
If LastResultRow < 2 Then GoTo NoResults
Sheet1.Range("C31:AH" & LastResultRow + 29).Value = .Range("BQ2:CV" & LastResultRow).Value 'Copy Over Results
NoResults:
End With
End Sub
我在这一行收到一个错误:
.Range("A1:AF" & LastRow).AdvancedFilter xlFilterCopy, CriteriaRange:=.Range("AI1:BN" & LastCritRow), CopyToRange:=.Range("BQ1:CV1"), Unique:=False
我搜索了可能的问题,例如名称已关闭或未正确指定范围。因此,我检查了高级选项卡中的范围与我放置在代码中的范围,它们偏离了 1,因此我更新了它们。我仍然收到错误消息。
编辑评论:当我没有输入过滤规范时,这是单元格 L27 中的内容。这被分配给一个按钮:
Sub ClearFilter()
Dim LastRow As Long
LastRow = Sheet2.Range("A9999").End(xlUp).Row 'Last Row of Data
Sheet1.Range("C31:AH" & LastRow + 29).Value = Sheet2.Range("A2:AF" & LastRow).Value 'Bring Data Over
Sheet1.Range("L27").Value = Sheet1.Range("AN31").Value 'Copy Over Default Text
Sheet2.Range("AI2:BN2").ClearContents
End Sub
解决方案
推荐阅读
- python - 我正在尝试从我的用户那里获取:first_name 和 last_name,并注意到在我的 html 代码中正在改进
- android - 为什么我的位图图像出现在警报对话框后面?
- ios - 根据用户选择从数据模型中列出和过滤 - SwiftUI
- excel - 如何从 Excel 中的文本字符串中提取特定数字?
- swift - UITableViewCell 内的 UICollectionView 缓慢滚动
- .net-core - 依赖注入 - .NET Core Windows 窗体
- compilation - 用 openmpi-4.0.5 编译的 Quantum esspresso-6.7.0 问题
- react-native - 如何访问从子到父反应原生的状态变量?
- html - 为什么 CSS 变换会影响站点宽度?
- javascript - Angular - 无法安装 Moment 和 Material Moment 适配器