[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