无法禁用表单中的 VBA Excel 输入框 VBA 警报

问题描述 投票:0回答:1

我想禁用 VBA 警报通知“数据已经在这里”。

我尝试了以下解决方案:

禁用 VBA 警报 https://www.youtube.com/watch?v=qkQcYl3Gquc https://www.excelmadeeasy.com/excel-vba-turn-off-alerts.php

这使我采取了以下方法:

Private Sub DocumentIDTextBox1_Change()
Application.AlertBeforeOverwriting = False
Application.DisplayAlerts = True
Range("AA22").Value = " Document: "
Range("AA22").Font.Bold = True
Range("AB22").Value = DocumentIDTextBox1.Value
Range("AB22").TextToColumns Destination:=Range("AC22"), DataType:=xlDelimited, 
Other:=True, OtherChar:="-"
End Sub

但警报不断出现。

有什么办法可以关掉它吗?

excel vba
1个回答
0
投票

恐怕您无法抑制此警告,因为

TextToColumn
尝试返回的单元格中存在值。 Excel 会对此方面发出警告,并要求您接受才能覆盖。

但是您可以在使用之前清除计算出的必要细胞内容

TextToColumn
...

请尝试下一个改编的代码:

Sub supressWarning()
 Dim cellRng As Range: Set cellRng = Range("AA22")
 
 With cellRng
    .value = " Document: "
    .Font.Bold = True
    .Offset(, 1).value = DocumentIDTextBox1.Value 'text separated by "-"
    .Offset(, 2).Resize(, UBound(Split(.Offset(, 1).value, "-")) + 1).Clear
    .Offset(, 1).TextToColumns Destination:=.Offset(, 2), DataType:=xlDelimited, Other:=True, OtherChar:="-"
 End With
End Sub

这解决了实际问题,但如果立即以编程方式写入相应的文本框值,则不会打扰您。否则,在添加到文本框值/文本的每个字符之后运行事件代码可能会很烦人。

这样的话,也许

AfterUpdate
活动应该更合适,我想……

© www.soinside.com 2019 - 2024. All rights reserved.