【求助】Excel1表單連結至巨集之問題



贊助商連結


Oyazi
2003-05-24, 03:55 PM
Excel2000中的表單,非控制工具箱裡的物件,其中的值,如布林,字串等,可以直接由巨集中取得嗎?
例如,工作表中有一核取方塊,名稱為a
先勾選好核取方塊a中的值
在模組中的巨集中可以直接取得a的布林值嗎?
還是只有將核取方塊中的值連結至某欄位中,再由巨集去取得呢?
很久沒來了...
一來就問問題~~~真歹勢哩~~~~:(

贊助商連結


leonchou
2003-05-24, 05:46 PM
直接判斷即可。
舉例(在UserForm模組裡面) --

If Me.OptionButton1 = True Then
MsgBox "You selected OptionButton1"
End If

說明 -- Me是指UserForm物件, OptionButton1是OptionButton的名稱, 如果你用別的名稱, 這裡也要改成一樣的.
If Me.OptionButton1 = True Then 可簡寫為
If OptionButton1 Then
可省略 Me 是因為程式位於UserForm模組裡面,
可省略 =True 是基於Boolean值的特性.

leonchou
2003-05-24, 06:16 PM
呃, 我好像誤解題意...

工作表上的表單控制項也是可以直接判斷,
例如判斷 OptionButton 被選取是這樣的 --
方法1
ActiveSheet.Shapes("Option Button 1").ControlFormat = 1
方法2
ActiveSheet.Optionbuttons(1) = 1

當然, 方法2是比較高明的。

Oyazi
2003-05-24, 06:19 PM
問題就是...
我所謂的表單不是在UserForm下的...
Excel中有兩種不同的Form,我一時也說不清楚兩者的差別
在工具列的類別中有兩種,一是表單,一是控制工具箱
我之前所說的核取方塊(CheckBox)是由表單裡加入至Excel中的
而非從控制工具箱中加入,
Leon兄...你懂我所說的嗎...
還是得謝謝你所提供的解答...:)

Oyazi
2003-05-24, 06:34 PM
呵呵~~~
我們竟僅在三分鐘的差距間發表了文章...
而且Leon兄你還趕在我之前~~~
我大概明白你的意思~~~
但是我始終取不出我在worksheet中checkbox的值...
我試了shapes的屬性...
也直接試了Checkbox()的屬性
在你的例子中有提到一個ControlFormat的方法(還是屬性我不知道...)
也徒勞無功...
我要在巨集中取得Sheet中的Checkbox的Boolean值
麻煩你再傷一下腦筋囉~~~:-P

Oyazi
2003-05-24, 07:06 PM
Leon兄:
我算是解決我的問題了...
雖然用的方法粉笨...
不過我還是想知道...
到底有沒有辦法可以將在Sheet中的CheckBox的值取出成True或是False呢~~~
謝謝你的鼎力相助~~~
:jocky:

leonchou
2003-05-24, 08:29 PM
我不知道你用什麼方法解決的, 或許是像你第一篇說的
先把值連結到某一儲存格再去判斷.. 但到目前為止
我用的都是直接判斷的方式.
不知你有沒有想過: 既然可以用 Optionbuttons(1) 來引用 Optionbutton,
那為何不能用 Checkboxes(1) 來引用 Checkbox 呢?

If ActiveSheet.Checkboxes(1) = 1 Then ......

Oyazi兄, 可別說你不知道 Checkbox 的複數是 Checkboxes :)
當然集合物件概念在學習VB/VBA上也是很重要的..

PS.只能對ActiveX控制項判斷True或False(依物件類型而定), 也就是說
boolean 判斷並不適用Worksheet表單控制項 -- 至少實驗結果如此.

c715881
2003-05-26, 02:38 PM
可以直接由巨集取得sheet1的值
sheet1.OptionButton1.value 就可以得到了
希望對你有幫助

leonchou
2003-05-26, 06:55 PM
最初由 c715881 發表
可以直接由巨集取得sheet1的值
sheet1.OptionButton1.value 就可以得到了
希望對你有幫助
不好意思,你可能也看錯題目了..和我一開始一樣 :p
你的寫法只能用在ActiveX控制項, 也就是
[控制工具箱] 裡的控制項, 而主題問的是
[表單] 工具列的控制項.
ActiveX控制項和表單控制項是不一樣的,
取得屬性和控制的方式也不一樣.

題外話,
ActiveX控制項雖然比較新, 功能也比較強,
但有些時候我還是比較喜歡用表單控制項...