使用VBA中的table Name和column Name替换表的列中的值



我有下一个表

tbody> <<tr>v
header1 header2 header3
vxv
xvx
xx
vv
xvx

您可以使用此代码。

我喜欢为这样的设置设置一些配置,这样更容易进行更改,例如,如果你想更改替换值。

关于替换true/false:您需要在替换时在值前面放一个' -否则Excel将其转换为TRUEFALSE(一个值,而不是字符串)

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

显然,如果sheet-或table-name不存在,则需要一个错误处理程序。

最新更新