-1
我在excel中有一列有兩個值「不合格」和「打開」。使用excel vba將數值轉換爲數字if語句
我想用VBA改變不合格值0和值開使用IF語句1.
這裏是Excel公式表示就是我想要做的
=IF(H:H="Disqualified","0","1")
我想我需要一個for循環來遍歷列H中的所有值,但似乎無法使其工作。謝謝
我在excel中有一列有兩個值「不合格」和「打開」。使用excel vba將數值轉換爲數字if語句
我想用VBA改變不合格值0和值開使用IF語句1.
這裏是Excel公式表示就是我想要做的
=IF(H:H="Disqualified","0","1")
我想我需要一個for循環來遍歷列H中的所有值,但似乎無法使其工作。謝謝
以代碼在你self-answer,它可以(也應該)進行重構,以擺脫Select
部分(這幾乎總是產生在未來的問題)的。
Sub changeValues()
With Worksheets("your_sheet_name")
With .Range("H1:H" & .Range("H" & .Rows.Count).End(xlUp).Row)
.Replace What:="Disqualified", _
Replacement:="0", _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False, _
SearchFormat:=False, _
ReplaceFormat:=False
.Replace What:="Open", _
Replacement:="1", _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False, _
SearchFormat:=False, _
ReplaceFormat:=False
End With
End With
'I doubt if the next line is needed
'ActiveWindow.SmallScroll Down:=-66
End Sub
那麼可能有更好的方式來寫這個,但這個宏做的工作。
Sub changeValues()
'
' changeValues Macro
'
'
Range(Selection, Selection.End(xlDown)).Select
Selection.replace What:="Disqualified", Replacement:="0", LookAt:=xlPart _
, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.replace What:="Open", Replacement:="1", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
ActiveWindow.SmallScroll Down:=-66
End Sub
只要做一個查找和替換。 –
我可以手動過濾和更改值,或者執行查找和替換或公式。不過,我將自動化的電子表格用於將值導入數據庫,並且我想使用vba編寫所有進程,因此不需要手動工作。謝謝 – Pete
在這種情況下,請嘗試開啓宏記錄器,執行手動操作,然後修改生成的代碼。如果您需要最後一部分的幫助,請回到這裏。 –