当只有一个单元格被选中时,每个单元格都失败

我正在VBA中select一个范围到变体

Dim source as variant source = Range("A4:A" & rowcount) 

然后我每个人都有一个

 For Each element in source ..... ..... 

当select了2-3个值时,这是有效的,但是当rowcount是4时, Range("A4:A" & rowcount)将只select一个单元格,并且每个单元格都不工作

即使只有一个值,我怎么能使它工作

我试过了

 If (rowcount=4) Then redim preserve source(1) source(1,1) = source 

但它没有工作

你需要做到二维

 Dim var As Variant Dim rng As Range Dim thing As Variant Set rng = Range("a1") If rng.CountLarge = 1 Then ReDim var(1 To 1, 1 To 1) var(1, 1) = rng.Value2 Else var = rng.Value2 End If For Each thing In var MsgBox thing Next thing 

试试这个,并检查这是否适合你:

其中,ThisWorkbook.Sheets(1)引用您的工作簿Sheet 1。

 Sub try() Dim source As Range RowCount = 4 Set source = ThisWorkbook.Sheets(1).Range("A4:A" & RowCount) For Each element In source MsgBox "hi" Next End Sub