excel - 我如何获得一个动态数组,我将它调暗为什么?VBA
问题描述
我最近开始使用数组,并且对它是如何工作的感到非常困惑。当前数组(可能会更改)从 D4 开始。由于以后似乎无法使用数组列表进行过滤,我该如何正确加载数组?
任何帮助将不胜感激,在此先感谢您!
D
4 May
5 Ann
6 June
Dim wb As Workbook
Dim ws As Worksheet
Dim arrlist() As String
Set wb = ThisWorkbook
Set ws = wb.Worksheets("WorkingSheet")
lastrow = ws.Cells(ws.Rows.Count, "D").End(xlUp).Row
numr = lastrow - 3
ReDim arrlist(0, 1 to numr)
ws.Range("D4:D" & lastrow).Select
For c = 1 To numr
arrlist(0, c) = CStr(Selection(c, 1).Value)
Next
解决方案
您可以使用Range.Value
来设置Array
.
将您的代码更改为此简单版本。
Dim wb As Workbook
Dim ws As Worksheet
Dim arrlist() As Variant
Set wb = ThisWorkbook
Set ws = wb.Worksheets("WorkingSheet")
lastrow = ws.Cells(ws.Rows.Count, "D").End(xlUp).row
arrlist = ws.Range("D4:D" & lastrow).Value
'Additional Code
ReDim arr(1 To UBound(arrlist)) As Variant
For i = LBound(arrlist) To UBound(arrlist)
arr(i) = arrlist(i, 1)
Next
wsd.Range($A$2:$AB$2260).AutoFilter Field:=2, Criteria1:=arr, Operator:=xlFilterValues
#注意: 这将为您提供一个二维数组,因此要从中打印所有值,请使用
For i = Lbound(arrlist) to Ubound(arrlist)
Debug.Print arrlist(i,1)
Next
只要确保引用任何重要的元素arrlist(i,1)
,1
否则你会得到一个错误。
推荐阅读
- ios - 将现有 Firebase 身份验证提供程序下的用户迁移到另一个
- mysql - 无法在 bitbucket 管道上连接到 MySQL(111“连接被拒绝”)
- angular - 无法使用 HTTPParams 对象执行发布请求
- freeradius - 如何在条件中引用标记属性
- docker - 在 swarm 上部署 Docker hub 私有镜像(使用 CI 服务器)
- julia - Gen:如何将多个生成函数轨迹组合成一个高阶生成函数?
- javascript - JSLint 换行格式
- python - 如何使用熊猫python使用csv文件编写代码以每60分钟显示一次输出值
- oracle - 授予 sys.v_$session
- ios - 在 MFMailComposeViewController 的 messageBody 中查找字符串