[VBA ] Excel cell與自訂表單TextBox連結

作者: piliGTcat (貍貓)   2020-09-25 16:37:51
各位大大好,
我現在用自訂表單中的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
但當自訂表單關閉時,會出現錯誤提示訊息「發生例外狀況」
作者: napyang (愛唱歌的大男孩)   2020-09-30 21:54:00
建議用textbox1.value = worksheet(...).range(“C1”).value,然後寫在userform initialize裡面
作者: piliGTcat (貍貓)   2020-10-05 11:37:00
有想過這種方式,但因為我的userform設定為vbModeless使用者可以去更改C1的值,這樣我要如何讓textBox1即時反應呢?

Links booklink

Contact Us: admin [ a t ] ucptt.com