各位前輩好,
我有個總表,裡面有其他工作表的簡述
我想要用一個巨集, 就是當我在總表更新的時候
就能複製另一個blank的工作表,並且將工作表名稱根據我總表裏所更新的儲存格內容命名
並在這之前要先判斷工作表示是否已存在,若存在就不新增
但我的總表有點麻煩,就是我要根據改變的欄位只有C欄,
但儲存格若是斜體以及為空白儲存格的話,就不新增工作表
於是我寫了以下巢狀的語法。
出現的問題就是:
執行完巨集了也沒有出現error,
但是他並沒有把我寫的If Cells(i, "C").Font.FontStyle = "標準"這句判斷出來
斜體的儲存格一樣被新增了....
實在不知道出了什麼錯
Sub 批次新增工作表()
'先把現存sheet弄成一個array
Dim shtName As String
For Each sht In Sheets
shtName = shtName & "/" & sht.Name
Next
shtName = Mid(shtName, 2)
shtArray = Split(shtName, "/")
'用迴圈設定一個範圍
For i = 2 To 79
x = Sheets("總表").Cells(i, "C")
'先判斷sheet是否存在,沒有再新增
a = Application.Match(x, shtArray, 0)
If IsError(a) Then
If Cells(i, "C").Font.FontStyle = "標準" Then
If x <> "" Then
Sheets("Blank").Copy Before:=Sheets("Blank")
ActiveSheet.Name = x
End If
End If
End If
Next i
End Sub
試試看用Range.font.Italic
屬性檢查是否為斜體。
Sub 批次新增工作表()
'先把現存sheet弄成一個array
Dim shtName As String, c As Range, rng As Range
For Each sht In Sheets
shtName = shtName & "/" & sht.Name
Next
shtName = Mid(shtName, 2)
shtArray = Split(shtName, "/")
'用迴圈設定一個範圍
Set rng = Range(Sheets("總表").Cells(2, "C"), Sheets("總表").Cells(79,"C"))
For Each c in rng
'先判斷sheet是否存在,沒有再新增
a = Application.Match(c.Value, shtArray, 0)
If IsError(a) Then
If c.value <> "" And not c.font.Italic Then
Sheets("Blank").Copy Before:=Sheets("Blank")
ActiveSheet.Name = c.value
End If
End If
Next c
End Sub