Board logo

標題: [發問] VBA,多個工作表,同步刪除指定條件列 [打印本頁]

作者: dennis    時間: 2014-5-27 19:28     標題: VBA,多個工作表,同步刪除指定條件列

各位大大
小弟有個汽車交易的簡易檔

Sheet1及Sheet2是相關的
因為Sheet1會回傳Sheet2的資料
所以希望Sheet1 某引擎號碼列被刪除時
Sheet2 同樣的引擎號碼列,也都同步整列刪除

例如
Sheet1 D10儲存格 引擎號碼ABC1234
Sheet2 B13儲存格 引擎號碼也是ABC1234
那我在Sheet1刪除第10列整列時
Sheet2 第13列也同步整列刪除

找了2天,趴了很多文,都找不到這個方法
希望有好心的大大能幫幫我
感恩 
作者: GBKEE    時間: 2014-5-28 17:17

回復 1# dennis
試試看
  1. Option Explicit
  2. Sub Ex()
  3.     Dim Rng As Range, Sh As Worksheet
  4.     For Each Sh In Sheets  'Sheets:工作表集合物件
  5.         Do
  6.             Set Rng = Sh.Cells.Find("ABC1234", Lookat:=xlWhole)
  7.             If Not Rng Is Nothing Then
  8.                 Rng.EntireRow.Delete
  9.                 Set Rng = Sh.Cells.Find("ABC1234", Lookat:=xlWhole)
  10.             End If
  11.         Loop Until Rng Is Nothing
  12.     Next
  13. End Sub
複製代碼

作者: dennis    時間: 2014-5-28 19:14

GBKEE大大:
               非常感謝您的回復,不過有2個小問題
               1.在sheet1是完全的整列刪除沒錯,但在sheet2卻只是刪除該儲存格,沒辦法完全的整列刪除
               2.想請問是否可以,使用對話視窗來執行刪除指令
               麻煩您了,非常感謝
作者: dennis    時間: 2014-5-30 00:21

麻煩您了
謝謝


    [attach]18411[/attach]
作者: GBKEE    時間: 2014-6-1 07:41

回復 4# dennis
是這樣嗎?
  1. Sub Ex()
  2.     Dim Rng As Range, i As Integer
  3.     Set Rng = Sheets(1).Cells.Find("64631325", Lookat:=xlWhole) '第1張工作表中尋找引擎號碼
  4.     If Not Rng Is Nothing Then
  5.             Rng.EntireRow.Delete
  6.         For i = 2 To Sheets.Count '第2張工作表到最後一張工作表
  7.             Sheets(i).Cells.SpecialCells(xlCellTypeFormulas, xlErrors).EntireRow.Delete
  8.         Next
  9.     End If
  10. End Sub
複製代碼

作者: dennis    時間: 2014-6-1 16:04

GBKEE大大:
首先非常感謝您的幫助:lol :lol :lol
不好意思
不知道是不是我不會使用,因為還是一樣
我是把您寫的VBA碼
分別複製到sheet1及Thisworkbook,但都一樣
在sheet1是完全的整列刪除沒錯,但在sheet2卻只是刪除該儲存格,沒辦法完全的整列刪除
:dizzy: :dizzy:




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)