[英]Excel-VBA string manipulation issue
我正在尝试复制一些8位数字以用于SQL搜索。
SQL查询给我错误,经过一些调试后,我发现该字符串未包含所有数据。 似乎在25个左右的数字后,我的for循环停止输入数据,就好像字符串已满。
谢谢您的帮助...
Lots = ""
For iRow = 2 To 500
If IsEmpty(Sheets("Filtered Data").Cells(iRow, 2)) Then Exit For
Lots = Lots & ",'" & Sheets("Filtered Data").Cells(iRow, 2).value & "'"
Next iRow
Lots = "(" & Mid(Lots, 2, Len(Lots) - 1) & ")"
您的代码工作正常。 大概您在该列中有一个空单元格正在使其退出循环。
您应该发布数据引发错误
至于虽然您可以考虑以下代码来利用Join()函数构建字符串
Dim Lots As String
With Worksheets("Filtered Data") '<--| change "Filtered Data" with your actual worksheet name
With .Range("B2", .Cells(.Rows.Count, 2).End(xlUp)) '<-- consider its column "B" cells from row 2 down to last non empty one
Lots = "('" & Join(Application.Transpose(.Value), "','") & "')" '<-- build up the string
End With
End With
假设“ B”列中的所有非空单元格都是连续的(即非空白单元格之间的非空白单元格),但是如果不是这种情况,则可以很容易地对其进行修改
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.