Board logo

標題: 可否巨集執行中途+人手操作 [打印本頁]

作者: enoch    時間: 2012-6-6 12:18     標題: 可否巨集執行中途+人手操作

請問巨集可否在執行期間, 遇到指定情況下 暫停操作 (例如當工作表不存在)
讓使用者可以人手操作 (例如新增工作表), 再按鍵繼續執行餘下巨集指令
請指教
作者: chchang76    時間: 2012-6-6 12:39

我印象中我學過可以寫 當出現ERROR 或不正確值的時候 可以跳出視窗請使用者是否要繼續 或修正數值

應該是可以辦得~  前提只是你要知道甚麼情況需要強制中止!
作者: GBKEE    時間: 2012-6-6 13:03

回復 1# enoch
類似這樣嗎?
  1. Option Explicit
  2. Sub Ex()
  3.     Dim xlSheetName As String
  4.     On Error GoTo xlErr
  5.     xlSheetName = "我的工作頁"                '工作表的名稱
  6.     Sheets(xlSheetName).Activate
  7.     Exit Sub
  8. xlErr:
  9.     If Err = 9 Then
  10.         If MsgBox("[ " & xlSheetName & " ]  不存在 " & Chr(10) & "新增 [ " & xlSheetName & " ] ?", vbYesNo) = vbYes Then
  11.             ActiveWorkbook.Sheets.Add.Name = xlSheetName
  12.             Resume
  13.         End If
  14.     End If
  15.     MsgBox "程式中斷"
  16. End Sub
複製代碼

作者: enoch    時間: 2012-6-6 14:32

GKBEE
不好意思, 我表達得唔清楚
在以上程式若執行到 ERR=9 之後,
能否有空間改為人手操作,而不限於預定的執行指示: 指定的新增工作表,
例如可能想將現有工作表改名為 "我的工作頁"
當人手做完之後再返回程式執行

實際問題:
想寫程式當發現檔案只有一頁工作表, 自動列印第一頁, 若多於一張工作表,
則人手選擇第幾頁後, 再繼續執行列印

煩請再指教
作者: Hsieh    時間: 2012-6-6 15:21

回復 4# enoch

    如果要設定列印頁數
  1. Sub ex()
  2. ActiveWindow.View = xlPageBreakPreview
  3. With 工作表1
  4. If .HPageBreaks.Count = 0 Then
  5. .PrintOut
  6. Else
  7. .PrintPreview
  8. End If
  9. End With
  10. ActiveWindow.View = xlNormalView
  11. End Sub
複製代碼





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