我的代码不会在我一直活跃的那本工作簿上运行。 我希望它能在工作簿的每张纸上运行 可能只是一个简单的解决方法
Sub Remove_symbol()
'remove "Â" from data
Dim ws As Worksheet
Dim Rng1 As Range
For Each ws In ThisWorkbook.Worksheets
Set Rng1 = Range(Cells.Address)
Rng1.Replace What:="~Â", Replacement:="", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
'and duplicates
Rng1.Replace What:="~(pH Unit)(pH Unit)", Replacement:="(pH Unit)", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Rng1.Replace What:="~(µS/cm)(µS/cm)", Replacement:="(µS/cm)", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Rng1.Replace What:="~(mg/L)(mg/L)", Replacement:="(mg/L)", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Rng1.Replace What:="~(µg/L)(µg/L)", Replacement:="(µg/L)", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Next ws
End Sub
答案 0 :(得分:1)
Set Rng1 = Range(
必须为Set Rng1 = ws.Range(
感谢braX在评论中的回答
答案 1 :(得分:1)
您正在为循环定义一个工作表对象调用ws
,但是您没有在任何地方使用它。设置它时,需要使用它来限定Range对象。您还应该使用它来限定您的单元格引用:
将其更新为此:
Set Rng1 = ws.Range(Cells.Address)
或可能这样:
Set Rng1 = ws.Range(ws.Cells.Address)