我有下一張桌子
| header1 | 標頭2 | 頭3 |
|---|---|---|
| v | X | v |
| X | v | X |
| X | X | |
| v | v | v |
| X | v | X |
我想將“x”替換為每列的另一個值,例如第一列為“true”,第二列為“false”,第三列為“else”。最后,這將是結果:
| header1 | 標頭2 | 頭3 |
|---|---|---|
| v | 錯誤的 | v |
| 真的 | v | 別的 |
| 錯誤的 | 別的 | |
| v | v | v |
| 真的 | v | 別的 |
但情況是我必須指定作業表名稱和表名稱(所有表都具有相同的列名稱)。所以我想出了這樣的東西,但顯然代碼是錯誤的
Sub Macro1()
'
'
'
Dim sheet_name As String
Dim table_name As String
sheet_name = InputBox("Sheet Name?", "enter the data")
table_name = InputBox("Table Name?", "enter the data")
With Worksheet(sheet_name).ListObjects(table_name)
.Range("[header1]").Select
Selection.Replace What:="x", Replacement:="true", LookAt:=xlPart _
, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
.Range("[header2]").Select
Selection.Replace What:="x", Replacement:="false", LookAt:=xlPart _
, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
.Range("[header3]").Select
Selection.Replace What:="x", Replacement:="else", LookAt:=xlPart _
, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
End With
End Sub
如果有人有任何更好的想法或方法來更正此代碼,那將非常有幫助。
uj5u.com熱心網友回復:
您可以使用此代碼。
我喜歡對此類設定進行某種配置 - 進行更改要容易得多,例如,如果您想更改替換值。
關于真/假的替換:您需要在替換時在值前面放一個 ' - 否則 Excel 會將其轉換為TRUE FALSE(一個值,而不是一個字串)
Public Sub replaceXValues()
Dim sheet_name As String
Dim table_name As String
sheet_name = InputBox("Sheet Name?", "enter the data")
table_name = InputBox("Table Name?", "enter the data")
Dim lo As ListObject
Set lo = ThisWorkbook.Worksheets(sheet_name).ListObjects(table_name)
Set lo = ActiveSheet.ListObjects(1)
Dim strFind As String
strFind = "x"
Dim arrReplace(1 To 3) As String
arrReplace(1) = "true"
arrReplace(2) = "false"
arrReplace(3) = "else"
Dim lc As ListColumn, i As Long
For i = 1 To UBound(arrReplace)
Set lc = lo.ListColumns(i)
lc.DataBodyRange.replace strFind, "'" & arrReplace(i), LookAt:=xlWhole
Next
End Sub
顯然,如果表名或表名不存在,您將需要一個錯誤處理程式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/535769.html
標籤:擅长VBA数据表输入框
