返回列表 上一主題 發帖

[發問] 若找不到該資料表~自動建立一個資料表~該怎麼下判斷式?

[發問] 若找不到該資料表~自動建立一個資料表~該怎麼下判斷式?

本帖最後由 av8d 於 2012-5-31 11:57 編輯

For i = 6 To 21
    If Me.Controls("OptionButton" & i).Value = True Then
        Sheets("" & i + 2006 & "").Select
        Range("A1").Formula = i + 2006
        Call test
        Unload Me      
    End If
Next



Sheets("" & i + 2006 & "").Select
如果選擇以上工作表~找不到該工作表~(代表該工作表尚未建立)
我能否在當此錯誤發生時,自動建立一個此檔名的工作表?
--------------------------------------------------------------------------------------------
我看到一個範例了~大約是這樣
Sub AddSheet()
    For N = 1 To [A65536].End(xlUp).Row
    Sheets.Add
    ActiveSheet.Name = Cells(N, 1)
    Next
End Sub
-------------------------------------------------------
另一個自動增加100個工作表的範例
For i = 1 to 100
    Sheets("sheet" & i ).select
    Sheets("sheet" & i ).name= i
next

回復 1# av8d


    試試看,主要在On Error Resume Next這句,當錯誤產生也就是沒有該工作表的時候不影響程式的接續
  1. On Error Resume Next
  2. For i = 6 To 21
  3.     If Me.Controls("OptionButton" & i).Value = True Then
  4.         Set Ws = Sheets("" & i + 2006 & "")
  5.         If Ws Is Nothing Then
  6.             ThisWorkbook.Sheets.Add().Name = "" & i + 2006 & ""
  7.         End If
  8.         Ws.Select
  9.         Range("A1").Formula = i + 2006
  10.         Call Test
  11.         Unload Me
  12.     End If
  13. Next
複製代碼
80 字節以內
不支持自定義 Discuz! 代碼

TOP

本帖最後由 av8d 於 2012-5-31 13:09 編輯

回復 2# kevin681024


    大大謝謝你~有一個問題想請教~

Ws.Select

這段的意思選擇Ws所對應的工作表的意思嗎?

TOP

回復 3# av8d


    我少了一段, Sorry,
    Add完後,再下一列在一次
    Set Ws = Sheets("" & i + 2006 & ""),
    Ws.select主要是你的程式之前有Sheets("" & i + 2006 & "").select
    所以改寫成這個樣子..
80 字節以內
不支持自定義 Discuz! 代碼

TOP

本帖最後由 av8d 於 2012-7-12 16:57 編輯

回復 2# kevin681024


    大大我最近刪除了一下OptionButton

改用TextBox9

I + 2006  也都改成 TextBox9

我該如何修改~? 謝謝! 以下我修改後無法執行~目前正在找原因

    On Error Resume Next

            Set Ws = TextBox9
            
            If Ws Is Nothing Then

                ThisWorkbook.Sheets.Add().Name = TextBox9
            
                Sheets("2012").Select
            
                Cells.Copy Sheets("" & TextBox9 & "").[A1]
        
                Sheets("" & TextBox9 & "").Select
        
                Range("A1").Formula = TextBox9

                Call test

                Unload Me
            
                Call ShowMsgBox

            Else
        
                Ws.Select
        
                Range("A1").Formula = TextBox9

                Call test

                Unload Me
            
                Call ShowMsgBox

            End If

TOP

        靜思自在 : 【生命在呼吸間】佛陀說:「生命在呼吸間。」人無法管住自己的生命,更無法擋住死期,讓自己永住人間。既然生命去來這麼無常,我們更應該好好地愛惜它、利用它、充實它,讓這無常、寶貴的生命,散發它真善美的光輝,映照出生命真正的價值。
返回列表 上一主題