2014-07-21 49 views
-1

在我的宏中,我需要調整一個單元格的大小並刪除選擇。我嘗試了一切,但它只是不會工作。它不斷給我在我的ActiveCell.resize線上的對象定義錯誤。我多次改變了這條線,但無濟於事。請幫忙,這個假設很簡單。VB刪除選擇不起作用

Sub CovDatesAndDeletes() 
    'shortcut ctrl + b 

    Dim SrchRng As Range 
    Set SrchRng = ActiveSheet.Range("A2:C62000") 


    For Each Source In SrchRng 
     If Source.Text Like "ACCUM_CLM" Then 
      Source.Activate 
      ActiveCell.Resize(25, -2).Select 
      Selection.Delete Shift:=xlUp  
     End If 
    Next Source 

End Sub 
+0

如果它是一個宏,那麼它不是vb.net。考慮刪除'vb.net'標籤。這是誤導。你能告訴我們你試過什麼(什麼是「一切」?)?你有沒有嘗試搜索'對象定義錯誤'?看看[Resize()](http://msdn.microsoft.com/en-us/library/office/aa176182(v = office.11​​).aspx)。這可能會幫助你。 – Sifu

+0

如果您要刪除單元格,您是否需要調整單元格大小? – APrough

+0

是的,我需要調整大小,所以我刪除所有與它一起的單元格 – user3232261

回答

0

ActiveCell.Resize調整範圍對象的大小,而不是像您在問題中提到的單元格。你需要澄清你想要做什麼(我不能在評論中提出這個問題 - 沒有足夠的代表)。

看起來你想搜索一個包含ACCUM_CLM字符串的單元格。找到時,向下擴展25行的範圍選擇,但不要包括B和C列,刪除選擇內容並將刪除內容以下的內容移動到您開始的位置。如果這是你想要做什麼,然後改變你的代碼如下:

If Source.Text Like "ACCUM_CLM" Then 
    Source.Resize(25).Select 
    Source.Delete (xlUp) 
End If 
+0

我確實需要它包括列b和c – user3232261

+0

然後將.Resize(25)更改爲.Resize(25,3)。原始代碼中的-2會導致錯誤。更好的是,改變Source.Resize(25)。選擇Source.Resize(25,3)。刪除​​並刪除第二行代碼。 – Luke

0

只是試圖讓你嘗試從上面的代碼做什麼的感覺 - 你能嘗試更換ActiveCell.Resize(25 ,-2)。選擇範圍(「A」& Activecell.row).Resize(25,3)。選擇並反饋這是否實際上允許在此解決任何問題?