重新加载表单时如何在文本框中保留值

时间:2019-05-19 04:50:50

标签: excel vba

我有一个非常简单的vba宏应用程序,包含2个文本框和命令按钮。想法是用户需要在文本框中输入数字值,然后单击按钮将其禁用以使他们无法更改该值。重新加载表单后,数值会丢失,我必须重新输入另一个值。

我想要的是重新加载表单后,数值将保持不变。

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="boxes">
  <div class="item">
    <span class="dot"></span>
    <label data-color="rgb(255, 64, 129)" class="checkbox" for="one">
    <input class="input" id="one" type="checkbox">Lobster
          <i class="far fa-times cancel"></i>
  </label>
  </div>
  <div class="item">
    <span class="dot"></span>
    <label data-color="rgb(49, 231, 182)" class="checkbox" for="two">
    <input class="input" id="two" type="checkbox">Tuna  
          <div class="cancel">x</div>
  </label>
  </div>
  <div class="item">
    <span class="dot"></span>
    <label data-color="blue" class="checkbox" for="three">
    <input class="input" id="three" type="checkbox">Pine 
          <div class="cancel">x</div>
  </label>
  </div>
</div>

图片

[1]

enter image description here

1 个答案:

答案 0 :(得分:2)

您需要记住,本质上讲,您拥有工作簿本身可以使用的数据库。

我的建议是,当用户添加值并单击按钮时,将该值插入到工作表中(您可能需要用它来保护,隐藏等……或与此无关),然后获取该值。再次打开表单时,从工作表中返回值。

从本质上讲,您只需要将值放在可以再次出现的表单中即可。如果您不喜欢工作表方法,那么总会有数据库,工作站上的文件,内存等。

类似这样的事情...

Private Sub btnLockBox_Click()
    Sheet1.Range("A1") = txtNumber.Text
    txtNumber.Enabled = False
End Sub

Private Sub UserForm_Initialize()
    txtNumber.Text = Sheet1.Range("A1")

    If txtNumber.Text <> "" Then
        txtNumber.Enabled = False
    End If
End Sub

enter image description here

我希望我已经正确理解了您的要求,希望这种方法有所帮助。