VBA - 将几个单元格组合成Excel中的单个字符串

时间:2017-06-27 14:55:15

标签: string excel-vba range vba excel

我正在处理一个充满保修数据的电子表格,并且有三个相邻的列,服务团队的不同成员可以输入他们找到的评论和故障代码。我正在编写一个宏来解析查找故障代码的注释,我可以让它搜索一个列,但我似乎无法一步到位地搜索相邻的列。

我的目标是将三个相邻的单元格组合成一个单独的字符串。我不关心空格或逗号分隔符,正则表达式仍然有效,我只想将几个相邻单元格的文本组合成一个单独的字符串,然后我将其传递给正则表达式。这是我到目前为止所做的:

npm install --save @types/express

其中ReadCol是要搜索的起始列,ColNum是要搜索的相邻列的数量(ColNum = 0将仅搜索第一列),i是行迭代器(每行是一个保修记录),strInput是什么传递给正则表达式。如果我只搜索一列,则宏可以正常工作。如果我尝试搜索多个,则会抛出类型不匹配错误。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

下面的代码可以解决问题。您可能需要修改工作表编号和起始单元格,否则您将不得不去。哦,你还需要修改你想要经历的数据行数。

Sub Combine_Cells_Into_string()
'The Combined string
Dim Comments_and_Codes As String

'Three Adjacent cells' data
Dim comment1 As String
Dim comment2 As String
Dim code1 As String

Dim Rows_of_data_cnt As Integer
Dim i As Integer
Rows_of_data_cnt = 10
'Iterating through your sheet
For i = 0 To Rows_of_data_cnt - 1   '-1 since we are starting at index 0 and not 1
    comment1 = Sheet1.Range("A1").Offset(i, 0).Text  'Your sheet number and starting cell may be different
    comment2 = Sheet1.Range("A1").Offset(i, 1).Text
    code1 = Sheet1.Range("A1").Offset(i, 2).Text
    Comments_and_Codes = comment1 + comment2 + code1  'Combining your data
    'Do Something with your string(This is up to you buddy)
    Sheet1.Range("G5").Offset(i, 0).Value = Comments_and_Codes
Next

End Sub