2014-12-04 112 views
0

我已經花了幾個小時通過網上資源梳理,並不能找到一個答案,爲什麼這會返回一個錯誤:不匹配在Excel VBA錯誤13 2010

Sub temp() 

Dim Findtext As String 
Dim Replacetext As String 
Findtext = Sheets("Sheet2").Range("B2:B500").Value 
Replacetext = Sheets("Sheet2").Range("A2:A500").Value 
Sheets("Sheet1").Select 
Cells.Replace What:=Findtext, Replacement:=Replacetext, LookAt:=xlPart, _ 
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
ReplaceFormat:=False 

End Sub 

每次我碰到一個「運行時錯誤‘13’ :類型不匹配「消息。

我只是試圖用一張紙上的數字值替換另一張紙上有相應數值的相鄰列中的數值。

回答

0
Sheets("Sheet2").Range("B2:B500").Value 

返回帶有界限(1到499,1到1)的2D Variant數組,而不是一個字符串。

您無法按照您嘗試的方式進行此操作:您可以循環查看每對值並對每對值執行一次替換。

未經測試:

Sub temp() 

Dim Findtext As String 
Dim Replacetext As String 
Dim rw As Range 

    For Each rw In Sheets("Sheet2").Range("A2:B500").Rows 

     Findtext = rw.Cells(2).Value 
     Replacetext = rw.Cells(1).Value 

     If Len(Findtext) > 0 Then 

      Sheets("Sheet1").Cells.Replace What:=Findtext, Replacement:=Replacetext, _ 
         LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _ 
         SearchFormat:=False, ReplaceFormat:=False 

     End If 
    Next rw 

End Sub 
+0

非常感謝你。這工作! – james987654321 2014-12-04 01:11:11