gpt4 book ai didi

arrays - 对于范围内的每个单元格,将单元格值添加到数组 - IF 条件满足

转载 作者:行者123 更新时间:2023-12-03 01:59:49 25 4
gpt4 key购买 nike

这听起来像是一个基本问题,但我找不到任何可以帮助我的提示。

我发现像 Arr = Range("A1:B10") 这样的东西会让事情变得简单,但上面例子的问题是它可能会插入其中的所有值指定的范围,这不是我想要的。虽然事后删除不需要的值听起来像是一个选项,但它也听起来像是一个可以轻松避免的大而无意义的弯路。

目前我有以下几点:

For Each cell In Worksheets("Search").Range("C7:C15").Cells
If cell.Value = "Yes" Then fcat() = cell.Offset(0, -1).Value
Next cell

我之前进行了猜测并尝试了 fcat(cell),但到目前为止我只在 fcat() = cell.Offset(0, -1).Value,我不完全确定还可以尝试什么。

感谢您抽出宝贵的时间,如果我还能做些什么来改进我的问题,请告诉我。

最佳答案

您将需要使用ReDim statement在数组变量上。

Sub fcat()
Dim fcat As Variant, cell As Range

ReDim fcat(0)
For Each cell In Worksheets("Search").Range("C7:C15").Cells
If cell.Value = "Yes" Then
fcat(UBound(fcat)) = cell.Offset(0, -1).Value
ReDim Preserve fcat(UBound(fcat) + 1)
End If
Next cell
ReDim Preserve fcat(UBound(fcat) - 1)

'try it out
Dim v As Long
Debug.Print LBound(fcat) & ":" & UBound(fcat)
For v = LBound(fcat) To UBound(fcat)
Debug.Print fcat(v)
Next v
End Sub

         REDIM statement

立即窗口的结果:

fcat
0:6
13
32
6
20
7

变量的大小不会自动增大或缩小。其下边界和上边界由 LBound function 表示。和 UBound function 。您可以为数组指定大小并填充它,或者使用 Redim 使用“保留”选项更改大小,以维护其已包含的数据。

关于arrays - 对于范围内的每个单元格,将单元格值添加到数组 - IF 条件满足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32202260/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com