首页 > 解决方案 > 循环直到行中的最后一列并填充组合框

问题描述

如何用从 B2 到行尾的没有空格的行的所有值填充我的 ComboBox1?

我知道 :

Sheets("Sheetname").Range("A2:A" & .Range("A65536").End(xlUp).Row).Value

但这是循环到列中最后一行的代码,我想做相反的事情。

标签: excelvba

解决方案


为了便于阅读,我会使用一个变量 ( LC) 来存储您上次使用的列的列索引。您还应该声明一个Worksheet变量,或使用 aWith Block来确保您的所有对象都是正确限定的。

Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")
Dim LC As Long

LC = ws.Cells(2, ws.Columns.Count).End(xlToLeft).Column

ws.Range(ws.Cells(2, 2), ws.Cells(2, LC)).[what?]

这是您如何实施Column Loop

Option Explicit

Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")
Dim LC As Long

LC = ws.Cells(2, ws.Columns.Count).End(xlToLeft).Column

For i = 2 To LC
    If ws.Cells(2, i) = "" Then
        MsgBox "Blank Cell: " & ws.Cells(2, i).Address(False, False)
    Else
        MsgBox "Non-Blank Cell: " & ws.Cells(2, i).Address(False, False)
    End If
Next i

推荐阅读