2014-10-31 83 views
0

我是新來的excel vba,但基本上我試圖做的是我比較兩個列表中的常見值。 有些單元格顯示爲空,但包含「」作爲不匹配的結果。 我試圖循環訪問列表,只將不是「」的值複製到新列中。 由於某些原因,除非我停下來,否則excel會保持循環而不會執行代碼。Excel VBA:「空」(失敗匹配)值的過濾列表,然後複製並粘貼到新列代碼循環

Sub Order() 

Dim x As Long 
x = 2 
ActiveSheet.Cells(x, 10).Select 
While x < 19112 And ActiveCell.Value <> " " 
ActiveSheet.Cells(x, 10).Select 
ActiveCell.Copy 
ActiveSheet.Cells(x, 11).Select 
ActiveSheet.PasteSpecial 
Wend 
x = x + 1 
End Sub 

回答

0

現在,分析下面的代碼之前,請看看How to avoid using .Select in Excel VBA Macros

而是循環這是相當緩慢,你可能需要使用自動篩選

嘗試更快的解決方案的
Sub BetterOne() 

    Dim lastRow As Long 
    lastRow = Range("J" & Rows.Count).End(xlUp).Row 

    Dim columnJ As Range 
    Set columnJ = Range("J1:J" & lastRow) 

    columnJ.AutoFilter 
    columnJ.AutoFilter Field:=1, Criteria1:="<>" 
    columnJ.Copy 
    Range("K1").PasteSpecial Paste:=xlPasteValues 
    Application.CutCopyMode = False 
    columnJ.AutoFilter 
End Sub 
+0

好吧,我想我得到最新消息。我需要的標準不會是「<>」。由此我的意思是任何不是「」,所以你如何指定。 – John 2014-10-31 11:52:17

+0

我想''='的另一種方式 – 2014-10-31 11:53:02

相關問題