標題:
[發問]
執行巨集 須輸入密碼,但套在此項程式內會無法判斷物件...
[打印本頁]
作者:
starry1314
時間:
2015-6-10 17:07
標題:
執行巨集 須輸入密碼,但套在此項程式內會無法判斷物件...
Option Explicit
Dim AR(1 To 2), Sh As Worksheet '模組 私用變數
Sub auto_open() '檔案開啟時一般模組 自動執行的檔案
Sheets("出餐單").Select
Dim S As Shape, A(), B(), i As Integer
Set Sh = Sheets("出餐單")
For Each S In Sh.Shapes
If S.Type = msoTextBox Then '方塊的Type msoTextBox 值= 17
S.OnAction = "check" '指定巨集
ReDim Preserve A(i)
ReDim Preserve B(i)
A(i) = S.Name '方塊名稱
If i = 0 Then
Set B(i) = Sh.[A100] '指定儲存格
Else
Set B(i) = B(i - 1).Offset(1) '指定儲存格
End If
i = i + 1
End If
Next
AR(1) = A '指定陣列內容
AR(2) = B '指定陣列內容
End Sub
複製代碼
Sub check() '必須是按下方塊執行此程序
'AUTO_OPEN '如有錯誤 執行 AUTO_OPEN 一次
Dim K As String, m As Boolean, i As Integer
With Sh.Shapes(Application.Caller)
With .TextFrame
K = .Characters.Text
If Left(K, 1) = "X" Then
.Characters.Text = "O "
m = False
Else
.Characters.Text = "X "
m = True
End If
.Characters(1, Len(K) + 1).Font.Size = 10
.Characters(1, 1).Font.Size = 32
End With
i = Application.Match(.Name, AR(1), 0) - 1 '取的方塊名稱在AR(1)的索引值
AR(2)(i).Value = m
AR(2)(i).Offset(, 1).Value = IIf(CSng(m) = 0, 0, 1)
End With
End Sub
複製代碼
Sub yy()
Dim pw
pw = InputBox("請輸入密碼: ")
If pw <> "1234" Then
MsgBox "密碼錯誤": Exit Sub
Else
你的巨集
End If
End Sub
複製代碼
作者:
luhpro
時間:
2015-6-13 06:31
starry1314 發表於 2015-6-10 17:07
執行巨集 須輸入密碼...
你可以把 Sub yy 的內容先加到 auto_open 最前面:
Sub auto_open() '檔案開啟時一般模組 自動執行的檔案
Dim pw
pw = InputBox("請輸入密碼: ")
If pw <> "1234" Then MsgBox "密碼錯誤": Application.Quit ' 密碼錯誤時直接關閉檔案
Sheets("出餐單").Select
...
至於你說的會無法判斷物件...
看不太出來與加上輸入密碼的程式有什麼關係耶?
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)