我有一个包含字母数字值的列,我想提取数字并使用vb脚本将它们复制到相邻列中。 这是我迄今为止尝试过的代码,但它在for循环中给出了错误。
设置objExcel = CreateObject(“Excel.Application”)
objExcel.Visible = True
srcFilePath =“C:\ Users \ reddy.ku \ Desktop \ files \ Issue.xls”
desFilePath =“C:\ Users \ reddy.ku \ Desktop \ files \ Book1.xlsx”
设置objWorkbook1 = objExcel.Workbooks.Open(srcFilePath)
设置objWorkbook2 = objExcel.Workbooks.Open(desFilePath)
设置objWorksheet = objWorkbook1.Worksheets(1)
objWorksheet.Activate
设置objRange = objWorkSheet.Range(“B1”)。EntireColumn
objRange.Copy
设置objWorksheet2 = objWorkbook2.Worksheets(1)
objWorksheet2.Activate
设置objRange = objWorksheet2.Range(“C1”)
objWorksheet2.Paste(objRange)
对于i = 1到objWorksheet2.UsedRange.Columns.Count
For j=1 to objWorksheet2.UsedRange.Rows.Count
if (objWorksheet2.Cells(j,i).Value = Isnumeric) then
objWorksheet2.Range( “B1”)。粘贴
接下来我
objWorkbook1.Save
objWorkbook1.Close
objWorkbook2.Save
objWorkbook2.Close
请在代码中建议任何替代或任何更改
提前感谢您的帮助
以下字符串中的字符串相似。
HDI_144383
HDI_135254
HDI_146750
HDI_147009
DTSample_HDI_146982_TC_Crash
答案 0 :(得分:0)
在电子表格中,使用以下代码创建一个模块:
Function MidCode(s As String) As String
i = 1
While Not ((Mid(s, i, 1) >= "0") And (Mid(s, i, 1) <= "9")) And (i <= Len(s))
i = i + 1
Wend
StartPos = i
While Not ((Mid(s, i, 1) < "0") Or (Mid(s, i, 1) > "9")) And (i <= Len(s))
i = i + 1
Wend
EndPos = i
MidCode = Mid(s, StartPos, EndPos - StartPos)
End Function
然后,在要提取数字的列中输入:
=MidCode(A1)
将其复制下来。如果原始数据在不同的地方开始,则需要更改A1部分以匹配。