我的實驗匯總表格里面有十多個sheet表,視窗文本框里面篩選符合條件的實驗組格式為: ****.csv,****.csv;
****.csv,****.csv;
****.csv,****.csv;
每一個****.csv一個sheet表格名稱,文本框分為3行顯示,請問如何一次性洗掉匯總表格里除了文本框里面的這六個符合條件的實驗組sheet。求原代碼,謝謝!
uj5u.com熱心網友回復:
不能“一次性”洗掉,只能一個一個的洗掉。
即使Excel本身,也不支持“一次洗掉多個表”吧。
For回圈,列舉所有的表格,按“名稱”(表格的“文本標簽”,并不是實際的物件名)判斷,
名字不在“文本框里面的這六個符合條件的實驗組sheet”之內就把它洗掉即可。
uj5u.com熱心網友回復:
前幾天剛幫老婆寫了個宏其中包含洗掉符合一定條件的sheet。由于按回圈來一次洗掉一個每次都會跳個確認對話框出來,不勝其煩,于是錄了一段宏修改了一下,總的做法就是符合條件的sheet就select起來,選一堆,然后一口氣洗掉所選的所有sheet。這樣確認對話框只會彈出一次。代碼貼出來,但你要自己改改,要不然執行會報錯,具體做法看代碼中的注釋
希望對你有用。
Private Sub 清除sheet()
Dim col As New Collection
Dim ary() As String
'先把所有符合條件的sheet的名字放入一個collection
For Each isheet In wb.Sheets
If isheet.Name <> "科目資訊" And isheet.Name <> "門店資訊" And isheet.Name <> "預算調整格式" Then
col.Add isheet.Name
End If
Next
'如果集合數大于0,說明有sheet需要洗掉
If col.Count > 0 Then
'定義一個陣列,把collection的sheet名字塞進去。當然,也可以不用那么復雜,在上面判斷符合條件的sheet名時就可以做這件事情了,只不過我不想頻繁redim陣列,這是個人怪癖不一定值得學習。
ReDim ary(0 To col.Count - 1)
For i = 0 To col.Count - 1
ary(i) = col(i + 1)
Next
'下面這個wb是workbook,我定義了個全域變數來放作業workbook,這里的代碼你需要改改。
wb.Activate
'一個陣列扔進去,一堆sheet選出來
wb.Sheets(ary).Select
'被選中的sheet們洗掉掉。
ActiveWindow.SelectedSheets.Delete
End If
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/57488.html
標籤:VB基礎類
上一篇:vb翻牌記憶游戲設計
