【发布时间】:2011-09-21 05:50:04
【问题描述】:
我是 VBA 新手,遇到数组和范围问题。我必须编写一个函数来选择由带有时间戳的值组成的范围的一部分,并在单独的范围内报告它们。
范围是这样的:
A B
1 15-May-11 23:47:40 False
2 15-May-11 23:49:10 False
3 15-May-11 23:49:10 False
4 15-May-11 23:50:52 True
5 15-May-11 23:50:52 False
6 15-May-11 23:51:56 False
7 15-May-11 23:51:56 True
8 15-May-11 23:53:24 False
9 15-May-11 23:53:24 False
我已经准备了这个函数:
Function selectEvents(rangeTimeValue, Val As String)
Dim outputRange() As Variant
j = 1
For i = 1 To rangeTimeValue.Height
Val_recorded = rangeTimeValue(i, 2).Value
Time_recorded = rangeTimeValue(i, 1).Value
If Val_recorded = Val Then
ReDim Preserve outputRange(j, 2) '(1)
outputRange(j, 1) = Time_recorded
outputRange(j, 2) = Val_recorded
j = j + 1
End If
Next i
selectEvents = Application.Transpose(outputRange) '(2)
End Function
现在,有两个问题:
- 函数在数组时中断 第二次重新标注尺寸 (1)
- 我也有错误 粘贴结果 (2) 因为 范围应该在我之前定义 猜,但我找不到 传递范围维度的方法 参数化方式
如果有任何帮助,我将不胜感激,谢谢!
【问题讨论】:
-
rangeTimeValue的类型是什么?