作者piliGTcat (貍貓)
看板Visual_Basic
標題[VBA ] Excel cell與自訂表單TextBox連結
時間Fri Sep 25 16:37:51 2020
各位大大好,
我現在用自訂表單中的TextBox連結到我Excel分頁中的儲存格
例如:
我要連結TextBox1和儲存格C1
我就在TextBox1的ControlSource屬性填入C1
TextBox1確實會出現儲存格C1的數值,C1值是使用excel公式計算出來的
我碰到的問題是,當我在自訂表單的程式碼中有去讀取TextBox1的資料時
連同儲存格C1的公式也會被值所覆蓋,但我希望C1的公式不要被改變
已經在TextBox1的Locked屬性設定為True,但只是限制使用者不能改TextBox1的值
仍無法解決這個問題
舉例說明:
C1公式 "=A1*B1"
儲存格如下:
A B C
1 6 6 36
我想要做到的效果是讓使用者輸入A1, B1資料
在自訂表單的TextBox1顯示C1的計算結果
現在的現象是:
1. 表單初始時,TextBox1內容 = 36
2. 使用者修改A1為4,TextBox1內容 = 24
3. 使用者修改A1為5,理論上C1 = 30,
但因為步驟2,C1內容被改為24 (公式被覆蓋)
導致C1顯示24,TextBox1顯示24
所以,是否有辦法讓C1 -> TextBox1 (單方向),而不要TextBox1 -> C1
目前折衷的辦法是利用保護工作表的功能,鎖定C1
但當自訂表單關閉時,會出現錯誤提示訊息「發生例外狀況」
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.250.199.40 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Visual_Basic/M.1601023073.A.BF4.html
※ 編輯: piliGTcat (60.250.199.40 臺灣), 09/25/2020 16:40:17
1F:推 napyang: 建議用textbox1.value = worksheet(...).range(“C1”). 09/30 21:54
2F:→ napyang: value,然後寫在userform initialize裡面 09/30 21:54
3F:→ piliGTcat: 有想過這種方式,但因為我的userform設定為vbModeless 10/05 11:37
4F:→ piliGTcat: 使用者可以去更改C1的值,這樣我要如何讓textBox1即時 10/05 11:37
5F:→ piliGTcat: 反應呢? 10/05 11:37