Board logo

標題: [發問] 請教各位前輩vba 關於分頁寫入問題~ [打印本頁]

作者: ii31sakura    時間: 2014-6-3 22:07     標題: 請教各位前輩vba 關於分頁寫入問題~

本帖最後由 ii31sakura 於 2014-6-3 22:09 編輯

各位前輩請問一下、小弟目前卡在 巨集(分頁確認)中有打一個問題點註解,
此段主要為判定或新增該名稱分頁是否存在、小弟將單獨分頁名稱填入是可以執行的,
但如果使用for迴圈依續將檔案分頁(人員清單)中的分頁清單進行填入將會執行錯誤,
請問各位前輩小弟的構想寫法中是哪邊出了問題呢?

感謝各位大大了~

[attach]18433[/attach]
程式碼:
Sub 分頁確認()
'For i = 2 To Worksheets("人員清單").[e65536].End(3).Row '變數i 從2到 e欄最後一項資料

Workbooks.Open Worksheets("總控制").Cells(2, 3) & "\" & Worksheets("總控制").Cells(2, 2)
SN = "T001" 'Worksheets("總控制").Cells(i, 5)  問題點
    For Each s In Sheets
        If s.Name = SN Then
            SNN = 1
            Exit For
        Else
            SNN = 0
        End If
    Next
    If SNN = 0 Then
        Sheets.Add
        ActiveSheet.Name = SN
    Else
        Sheets(SN).Select
    End If
   ActiveWorkbook.Close True
'   Next
   
End Sub
作者: GBKEE    時間: 2014-6-4 05:53

回復 1# ii31sakura
是這樣嗎?
  1. Sub 分頁確認()
  2.     Dim wb(1 To 2) As Workbook, SN As String, SNN As Integer
  3.     Set wb(1) = ThisWorkbook
  4.     Set wb(2) = Workbooks.Open(Worksheets("總控制").Cells(2, 3) & "\" & Worksheets("總控制").Cells(2, 2))
  5.     For i = 2 To wb(1).Worksheets("人員清單").[e65536].End(3).Row '變數i 從2到 e欄最後一項資料
  6.         SN = wb(1).Worksheets("總控制").Cells(i, 5) ' 問題點
  7.         For Each s In wb(2).Sheets
  8.             SNN = 0
  9.             If s.Name = SN Then
  10.                 SNN = 1
  11.                 Exit For
  12.             End If
  13.         Next
  14.         If SNN = 0 Then
  15.             wb(2).Sheets.Add
  16.             ActiveSheet.Name = SN
  17.         Else
  18.             Sheets(SN).Select
  19.         End If
  20.     Next
  21.     wb(2).Close True
  22. End Sub
複製代碼

作者: ii31sakura    時間: 2014-6-4 09:10

回復 2# GBKEE

GBKEE大大、請問小弟在執行時會出現"執行階段錯誤'1004':應用程式或物件定義上的錯誤,
    使用偵錯時會顯示在 ActiveSheet.Name = SN  這個部份,
    能不能請麻煩幫忙指點迷津一下呢?

小弟在此先謝過GBKEE大大的幫忙了。
作者: ii31sakura    時間: 2014-6-4 11:33

回復 2# GBKEE

GBKEE大大 不好意思、原來是小弟沒改到一個地方,小弟嘗試將下面這個地方更改後功能就正常執行了,
感謝 GBKEE大大 的幫忙解答哦~

註:SN = wb(1).Worksheets("總控制").Cells(i, 5) ' 問題點 →改成 SN = wb(1).Worksheets("人員清單").Cells(i, 5) ' 問題點




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