2015-04-08 17 views
0

如何告訴VBA如果工作表的名稱中包含單詞「name」的部分名稱「name」以完全擦除該表單?如何在部分名稱被寫入時擦除表單是sheetname?

當片材是好的,有寫在SHEETNAME

當片材是布蘭克使得片材被稱爲「名稱1」或「名稱2」等,直到「名稱30」

正常名

我必須刪除布蘭克表。

下面我的嘗試,但不工作。

Sub erasesheet(wbNew As Workbook) 
Dim ws As Worksheet 

For Each ws In Worksheets 

'here I have to be able to tell : I it contains the word "name" in the sheet 
'like the code is now it will only look exactly fot sheets with name "name" 
     If Sheets.Name = "name" Then 
     Application.DisplayAlerts = False 
     ws.Delete 
     Application.DisplayAlerts = True 
    End If 
    Next ws 
end sub 

回答

2

您需要使用Instr。試試下面的代碼

Sub erasesheet(wbnew As Workbook) 
    Dim ws As Worksheet 

    For Each ws In wbnew.Worksheets 
     If InStr(1, UCase(ws.Name), "NAME") Then 
      Application.DisplayAlerts = False 
      ws.Delete 
      Application.DisplayAlerts = True 
     End If 
     Next ws 
End Sub 
+0

喜,是有可能,我們需要增加somerhing例如* name或.NAME或類似的識別部分名稱的東西,becouse現在看來,它正在尋找確切的SHEETNAME「NAME」 ? – user2151190

+0

它並不尋找確切的名字。 Instr將搜索字符串中的子字符串。所以如果字符串中包含NAME,它將是TRUE。所以它就像* NAME。你爲什麼說它不是?你能提供你面臨的問題嗎? –

+0

如何設置此代碼以查找wbnew的表單? – user2151190

相關問題