excel - 从具有多个地址的变量中选择一个范围
问题描述
我从另一个线程获得了创建一系列过滤行的解决方案:
Dim filterRange
With ActiveWorkbook.Worksheets("SCOPE").Range("A2").CurrentRegion
filterRange = .Resize(.Rows.Count - 1).Offset(1).SpecialCells(xlVisible).Address
End With
现在我想选择这个范围并将它的值复制到另一个表中,如下所示:
Range(filterRange).Select
但我不明白为什么这不起作用。有人可以解释一下吗?
提前致谢。
解决方案
仅当没有任何内容写入时,它才起作用A3
。
因此,这部分在这里.Resize(.Rows.Count - 1)
返回一个错误,因为它实际上被评估为.Resize(1 - 1)
Range.Resize0
属性的无效参数。
解决这个问题的一些方法是:
Sub TestMe()
Dim filterRange As String
With ActiveWorkbook.Worksheets("SCOPE").Range("A2").CurrentRegion
If .Cells.Count <> 1 Then
filterRange = .Resize(.Rows.Count - 1).Offset(1).SpecialCells(xlVisible).Address
Else
filterRange = .Address
End If
End With
Range(filterRange).Select
End Sub
但是,这使代码看起来有点难看,因为它正在使用.Select
并将变量Range()
作为字符串从.Address
. (但如果你没有偏见,而且你所在的时区是星期五——那就去吧!)
推荐阅读
- excel - 在数据拉线上显示命令按钮
- cucumber - 使用 Multipart by karate API 工具上传图像
- frama-c - 尽管在 WSL Ubuntu 上安装了 frama-c,但未安装 Frama-C 的 GUI (frama-c-gui)
- c# - 如何在 asp.net mvc C# 中使用 paypal 交易的交易 ID 获取交易详情?
- python - 无法使用 openpyxl 的 load_workbook 打开 .xlsx 文件?
- python - Scrapy 存储功能
- python - 有多少个两位数 ab 满足: ab = a² + b² + 1
- visual-studio - 更改集合表达式的传入参数
- javascript - React Service Worker:加载新内容而不强制用户关闭选项卡
- javascript - 如何将谷歌甘特图的 Y 轴作为 Javascript/AngularJS 中的超链接?