用户input多个列

我试图让用户定义从其中拉取数据的多个列。 这些列是不相邻的,即在列“A”,“D”,“H”,“P”中有数据。 这仅仅是一个例子,对于每个用户来说,相关的列将是不同的。 使用这样的东西:

dim data_col as range dim data_col_1 as integer set data_col = application.inputbox("Select your columns", Type:= 8 ) data_col_1 = data_col.column 

只返回范围中的第一个(最左边的)列索引。 我需要一种方法将这个input分成多个列索引,或者分成许多不同的variables或一个数组。

任何帮助表示赞赏。

尝试下面的代码,它会遍历所有的Areas ,并且每个区域将遍历所有列,并将它们的数字input到data_col_Arr数组中。

 Option Explicit Sub RangetoColumns() Dim data_col As Range Dim data_col_Arr() As Long Dim Area As Range Dim Col As Range Dim i As Long Set data_col = Application.InputBox("Select your columns", Type:=8) ReDim data_col_Arr(1 To 1000) ' init to large size >> will optimize at the end i = 1 Dim MsgStr As String For Each Area In data_col.Areas For Each Col In Area.Columns data_col_Arr(i) = Col.Column MsgStr = MsgStr & data_col_Arr(i) & vbCr ' <-- for Debug Only i = i + 1 Next Col Next Area ReDim Preserve data_col_Arr(1 To i - 1) 'Redim array size to number of columns populated MsgBox MsgStr ' <-- for Debug Only End Sub