2017-08-28 58 views
0

我有一個字母數字值的列,我想提取數字,並通過使用VB腳本將它們複製到相鄰的列。 這是我到現在爲止嘗試過的代碼,但它在循環中給出了錯誤。通過使用VB腳本從字母數字中提取數字

設置objExcel =的CreateObject( 「Excel.Application」)

objExcel.Visible =真

srcFilePath = 「C:\用戶\ reddy.ku \桌面\文件\ Issue.xls」

desFilePath = 「C:\用戶\ reddy.ku \桌面\文件\ Book1.xlsx」

集objWorkbook1 = objExcel.Workbooks.Open(srcFilePath)

集objWorkbook2 = OBJ Excel.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。範圍( 「B1」)。粘貼

下一I

objWorkbook1.Save

objWorkbook1.Close

objWorkbook2.Save

objWorkbook2.Close

請提出任何替代或代碼中的任何變化提前

感謝您的幫助

以下這些字符串在列中看起來很相似。

HDI_144383 

HDI_135254 

HDI_146750 

HDI_147009 

DTSample_HDI_146982_TC_Crash 
+1

首先,請閱讀[問]並參加[旅遊]。然後決定它是VBScript還是VB.NET - 不能是 – Plutonix

+0

你試過了什麼,你試過的怎麼樣都失敗了?理想情況下,您應該提供您嘗試過的[最小,完整和可驗證的示例](https://stackoverflow.com/help/mcve),幷包含有關失敗的具體信息,包含錯誤消息和/或錯誤的輸出。 SO不是代碼寫入服務;最好的問題是提供有用信息的問題,以便那些回答問題的人可以指導你設計自己的正確答案。參見[如何提出一個好問題](https://stackoverflow.com/help/how-to-ask)。 –

回答

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部分以匹配。

+0

請用vb腳本編寫。 –