2014-06-19 52 views
-1

下面的代碼給出了Excel 2008中的不匹配或範圍錯誤。我該如何解決它?不匹配或範圍錯誤

Sub PEC() 
    Dim PEC As String, result As Integer 
    PEC = Range("AE2:AE26848").Value  
    If PEC = "A.06" Then result = 1  
    Range("AO2:AO26848").Value = result 
End Sub 
+2

你到底想幹什麼?您不能從大於一個單元格的範圍獲取值。 – MatthewHagemann

+0

如果「A.06」位於不同的列中,我試圖將「1」放入單元格中,如果這樣做有意義? – user3757898

+0

是的。我想你可以通過在AE上過濾'A.06'來實現這一點,然後用'1'填充AO的可見部分,如果VBA不是必需的。 – pnuts

回答

0
Sub PEC() 
    For x = 2 to 26848 
     If Range("AE" & x) = "A.06" Then Range("AO" & x) = 1 
    Next x 
End Sub 
0

我建議使用下面的代碼。這看起來可能更復雜,但它肯定會做得更好,更穩健。它只是將您的輸入和輸出範圍分配爲SrcRng和DstRng。範圍的FIND方法是檢查特定值的好方法。

子(PEC)

Dim SrcRng As Range 
Dim DstRng As Range 
Dim rcell As Range 

Set SrcRng = Range ("AE2:AE26848") 
Set DstRng = Range("AO2:AO26848") 

Set rcell = SrcRng.Find(what:="A.06", after:=SrcRng.Cells(1, 1), _ 
        LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, _ 
        SearchDirection:=xlNext, MatchCase:=False) 

If Not rcell Is Nothing Then 
    DstRng.Value = 1 
End If 

末次