我現在有一個VBScript接受一個Excel文件並重新格式化爲另一個Excel文檔那是更加有組織英寸 此代碼還必須看目錄欄(「B1」)的值,並將其放置在圖紙列(「M1」),只有當值的開頭「EDASM」開始,「EDBSM」等,但移動時必須消除「ED」前綴。從另一列填寫色譜柱的值if語句(S)
例如,目錄號EDF12-01114將導致圖紙欄中沒有任何內容,但對於EDSM10265,我們需要將SM10265放置在圖紙欄中(放下「ED」)。
所有到目前爲止,我所得到的是這個,這是不完整的,甚至:
Set objRange = objWorkSheet.Range("M1").EntireColumn
IF
objWorkSheet.Range("B1").Row = "EDF*" THEN 'Maybe correct-ish? Not sure about syntax
objRange = Null
Else
objRange = ("B1") 'Totally an awful guess, but I have no clue what to put here
End If
我見過有循環和諸如此類的東西類似的代碼,但沒有人似乎在做什麼,我需要完成。謝謝!基於關BruceWayne的當前代碼:
編輯。仍然不返回在Excel數據表的繪圖列東西,但它看起來像它更接近...
Sub move_Text()
Dim lastRow, nextRow, cel , rng
lastRow = Cells(Rows.Count, 2).End(xlUp).Row ' Since your Col. B is the data, let's find that column's last row
Set rng = Range(Cells(1, 2), Cells(lastRow, 2))
nextRow = 1
For Each cel In rng
If Left(cel.Value, 3) <> "EDF" Then
Cells(nextRow, 13).Value = Mid(cel.Value, 3, Len(cel.Value) - 2)
nextRow = nextRow + 1
End If
Next
End Sub
另一個編輯! 目錄列現在是「C」,而不是「B」。另外,我有兩個標題行,所以第一個目錄號位於「C3」中。
再次感謝!我們正在接近。
下面是谷歌雲端硬盤文件:https://drive.google.com/folderview?id=0B2MeeQ3BKptFYnZfQWpwbTJxMm8&usp=sharing
重要的是記住
在谷歌雲端硬盤文件:TestScript.vbs是所有的代碼文件。腳本運行時,請選擇ExcelImport。這應該返回FinalDocument
您是否檢查前2個字符是否爲「ED」?或者你只是在尋找「EDASM」和「EDBSM」?或者你有一個清單:「EDASM」,「EDBSM」,「EDJASM」,「EDKBSM」...等。 –
一切都將有前兩個字符作爲「ED」,但如果它是「EDF」,我需要一個空值轉移到列M.如果它是除「EDF」:「EDASM」,「EDBSM」,「EDJASM 「,」EDKBSM「...等,它需要刪除前綴」ED「並將值移到 – cdomination
由於您知道**它將全部以」ED「開始,爲什麼不使用'If Left(Range 「B1」),2)=「ED」然後...'。這樣你就可以避免使用通配符的任何缺陷(從我的頭頂開始,我不記得Excel是否會像查找'ED *'一樣讀取你的行,或者如果它識別'*'爲通配符)。 – BruceWayne