【发布时间】:2022-10-12 23:04:16
【问题描述】:
我想遍历列中的每个单元格,如果满足条件,则将其放入下一个可用的数组元素中。
我有第一部分,但我不知道如何将满足 IF 语句标准的每个元素放入一个数组中,然后转置该数组。
Option Explicit
Private Sub Workbook_Open()
Dim StepCheck As Range
Dim ImporterName As Variant
Dim ws As Worksheet
Dim NameRange As Range
Set ws = Workbooks.Open(Filename:="Filepath goes here").Sheets("Sheet1")
For Each StepCheck In ws.Range("F1:F" & ws.Cells(ws.Rows.Count, "F").End(xlUp).Row)
If IsError(StepCheck.Value) Then
If Err.Number <> 0 Then
Err.Clear
On Error GoTo 0
End If
ElseIf StepCheck.Value = "5" Then
ImporterName = StepCheck.Offset(0, -5).Value
End If
Next
End Sub
当每个 StepCheck 满足 IF 语句条件时,如何将其存储到数组导入器名称中?
代码运行但不会将所有 StepCheck 条目存储到数组中,而是在每个循环中都被覆盖。
【问题讨论】:
-
ImporterName不是数组,它只是一个变体。你需要声明一个数组并设置它的大小,然后你可以索引它的元素。 -
我不知道数组的大小,我只知道它与 For 循环中的 ws.Range 一样大,id 必须以某种方式使其动态化
-
您可以使其大于一开始可能需要的大小,也可以使用
resize方法使其成为动态的。关于这方面的大量信息。 -
是的,好的,
ReDim按范围计数并使用ImporterName(StepCheck.Row)似乎工作正常,谢谢
标签: arrays excel vba if-statement