如何在Visual Basic(Excel)中向变量添加多个列

时间:2015-07-30 12:11:17

标签: excel vba multiple-columns basic

我有一个问题,即在Visual Basic中为变量分配多个列。这有可能吗?

目前我的代码如下:

Do
  Dim data As String
  data = wsh.Cells(Row, 2) 'Data for barcodes is taken from this column

现在我的问题是:如何为数据变量分配/存储更多列?我在下面尝试的方法是不允许的:

 data= wsh.Cells(Row,2), wshCells(Row, 3), wshCells(Row, 4)  

基本上,我想要做的是采用几个具有一些整数值的列。在这些值中,我想生成QR码并使用生成的QR码填充一些特定列。使用我当前的方法,我只能选择一个列并填充另一列。我无法分别选择多列并填充多列。

这是将QR码插入特定列的一个。

Set qrcode_cell = wsh.Cells(Row, 1) 'The cell where the QR Code will be placed

*注意我正在使用名为StrokeScribe的excel add on工具。

感谢您的帮助和建议。

2 个答案:

答案 0 :(得分:0)

将数据变量转换为列表

dim datas() as string, pos as integer
pos = -1

' Add a column to datas
public sub addColumn(byval row as integer, byval col as integer)
    pos = pos + 1
    redim preserve datas(pos)
    datas(pos) = wsh.Cells(row, col)
end sub

' Convert your datas into the format of your qrcode
public function retrieveData() as string
   retrieveData = ""
   dim data as string
   for each data in datas
      ' data is the string you had in wsh.Cells(Row, col)
      ' do what you want with this column
   next

   ' affect the result to "retrieveData" to retrieve datas in the needed format
end function

答案 1 :(得分:0)

只需使用&将每个单元格值附加到现有字符串:

Do
  Dim data As String
  data = wsh.Cells(Row,2) & wsh.Cells(Row, 3) & wsh.Cells(Row, 4) 

如果你的意思是你想在每次循环时添加一个值,那么就像:

Do
  Dim data As String
  data = data & wsh.Cells(Row,2), wshCells(Row, 3), wshCells(Row, 4)  

所以你只需将单元格附加到现有字符串上。