将变量声明为以特定字符开头的字符串,然后将其通过for循环

时间:2020-07-14 17:07:05

标签: excel vba

对于我的代码的一部分,我需要在一个单元格(例如G1,G2,H3)中获取一个字符串值,选择每个以G开头的逗号分隔的术语,然后将每个术语通过for循环。这样,只有以G开头的项才能通过for循环

到目前为止,这是我所拥有的,除了我的“ part”变量外,它似乎可以正常工作。它仍然是空的。我的语法或逻辑有问题吗?

谢谢。

dim parts, p as string 

part = "G" & "*" 'I tried both string and variant for part. I've also tried writing part="G*" instead

parts = o.Cells(cell.Row, "C") 
        
p = Split(parts, ",") 
        
        
For Each part In p
.
.
.
Next part

新的更新工作代码:

dim parts, part as String
dim p As Variant 

parts = o.Cells(cell.Row, "C") 

p = Split(parts, ",") 

For k = LBound(p) to UBound(p)

If Left(Trim(p(k)), 1) = "G" Then

part = CSTR(p(k))

.
.
.
.

End If
Next k

1 个答案:

答案 0 :(得分:2)

应该使用常规的For...Next循环以及LboundUbound遍历数组。然后,检查每个元素的第一个字符是否为G。也许也应该致电Trim来消除潜在的领先空间:

Dim i as Long
For i = Lbound(p) to Ubound(p)
   If Left(Trim(p(i)), 1) = "G" Then
      ...
   End If
Next