【问题标题】:excel vba: cells don't update until outside clickexcel vba:单元格在外部单击之前不会更新
【发布时间】:2014-11-08 04:30:24
【问题描述】:

我一直遇到这个问题。我有一个命令按钮可以更新某些单元格的值,但是当您单击该按钮时,该值不会更新。如果您然后单击工作表中的某个其他单元格,则该值最终会更新。我的代码如下所示:

Private Sub eight_Click()
    Dim oldnum As String
    If numset = False Then
        oldnum = Range("F4").Value
        Range("F4").Value = oldnum + "8"
    Else
        num1 = CLng(Range("F4").Value)
        Range("F4").Value = "8"
        numset = False
    End If
End Sub

在 Excel for Mac 上 100% 发生在我身上,在 Excel 2010 for Windows 上偶尔会发生。

这是文件:http://wikisend.com/download/906870/Tan.xlsm

【问题讨论】:

  • 你在哪里初始化numset?或者它是在子外部声明的?这到底是为了什么?
  • @user3925803 :由于您尚未初始化 numset,因此其值始终初始化为 EMPTY 并进入您的 IF 部分。您需要在 IF ELSE 开始之前设置 numset。我已经检查过了,F4 单元格中的值正在更新。
  • numset 实际上是 Module1.numset,但无论出于何种原因,它都可以在没有“Module1”的情况下工作。无论如何,代码运行良好,所有变量都保持正确的值并且输出正确,只是在我单击某个随机单元格之前不会更新 F4。顺便说一句,这是计算器应用程序上的数字 8 按钮。
  • 我可以看看你的文件吗?还要添加数字是不是正确的方法?这会更贴切Range("F4").Value = Val(oldnum) + 8 假设oldnum 有一个有效的数字
  • 计算器上的 8 按钮不添加任何内容。它将 8 连接到当前显示的数字 (54 -> 548)

标签: excel cell auto-update vba


【解决方案1】:

假设:您有一个按钮 (btnCalendarInvoke),它调用用户窗体 (frmCalendar) 这个用户表单有日期选择器(dtPicker)。

现在,如果我知道您想单击调用表单的 Excel 工作表上的按钮,您将从那里的日期选择器中选择日期,并且您希望所选日期自发地反映在 Excel 单元格上。

你可以这样做:

第 1 步 - 从项目资源管理器中打开 Userform 的代码窗口,并在常规范围下创建一个公共变量。

Public rangeName as String

第 2 步 - 现在在 UserForm 代码中创建一个 Public Sub 来设置这个变量,如下所示。

Public Sub SetDestinationRangeName(rngName as String)    
   rangeName = rngName
End Sub

第 3 步 - 创建代码来处理日期选择器更改事件,如下所示。

Private Sub dtSelect_Change()
    Worksheets("Scorecard").Range(rangeName).value = Format(Me.dtSelect, "Short Date").Value
    Unload Me
End Sub

第 4 步 - 转到 excel 表并编写代码来处理按钮单击事件。如下图。

Private Sub btnCalendar_Click()
   Dim calForm As frmCalendar
   Set calForm = New frmCalendar 
   calForm.SetRangeName ("Your Excel Cell reference Range") 
   calForm.Show
End Sub

第 5 步 - 现在对其进行测试。单击出现日历表单的按钮,从日期选择器中选择日期,它会自动关闭并更新 Excel 工作表。您不必像按照这种方法报告的那样对单元格进行额外的点击。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-06-15
    • 1970-01-01
    • 1970-01-01
    • 2020-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-02
    相关资源
    最近更新 更多