Board logo

標題: [發問] 若找不到該資料表~自動建立一個資料表~該怎麼下判斷式? [打印本頁]

作者: av8d    時間: 2012-5-31 11:11     標題: 若找不到該資料表~自動建立一個資料表~該怎麼下判斷式?

本帖最後由 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
作者: kevin681024    時間: 2012-5-31 12:25

回復 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
複製代碼

作者: av8d    時間: 2012-5-31 13:07

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

回復 2# kevin681024


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

Ws.Select

這段的意思選擇Ws所對應的工作表的意思嗎?
作者: kevin681024    時間: 2012-5-31 13:36

回復 3# av8d


    我少了一段, Sorry,
    Add完後,再下一列在一次
    Set Ws = Sheets("" & i + 2006 & ""),
    Ws.select主要是你的程式之前有Sheets("" & i + 2006 & "").select
    所以改寫成這個樣子..
作者: av8d    時間: 2012-7-12 16:31

本帖最後由 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




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