首页 > 解决方案 > 如何动态填充自定义功能区编辑框

问题描述

我有一个带有公式的单元格,该公式计算今天日期在一列中出现的次数。=COUNTIF(H1:H21,TODAY()). 当然,这个数字每天都在变化。![SheetView]{ https://www.flickr.com/photos/debbieheaney/49037908717/in/dateposted-public/)![SheetView] 屏幕截图旁边的按钮填写今天的日期。对于一个慈善机构,我自愿在他们有一个电子表格,其中列运行到 600 多个。我想将该数字从电子表格的底部移动到功能区,以避免长时间滚动到底部/前后跳跃。

这是针对 Microsoft Office Excel 2013 的。我尝试了许多来自互联网的示例,但我无法准确找到我正在寻找的内容,也无法弄清楚。

功能区 XML

    <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" 
onLoad="OnRibbonLoad">
<ribbon>    
            <tab id="tabDailyNumbers" label="Daily Count">
                <group id="grpDailyNumbers" label="Daily Numbers">
                <editBox id="NetFigureText" label="Uses Today" getText="onGetText" />
                <separator id="separatorone" />
                <button id="btnDateToday" label="Todays Date" size="large" onAction="subTodaysDate" />
                </group>
        </tab>

VBA

'Get a global referance to the ribbon object when the ribbon loads
Public Sub onRibbonLoad(ByVal ribbon As IRibbonUI)

Set globalRibbon = ribbon
    Public Sub onGetText(Control As IRibbonControl, ByRef Text)

'Callback for NetFigureText getText

Text = NetFigure

End Sub

Public Sub NetFigureGrab(Control As IRibbonControl)

'Retrieves data - in this case I will set data to be a static value as 
just complicates the example
NetFigure = "0"

MyRibbon.InvalidateControl "NetFigureText"

End Sub

'Callback for btnDateToday onAction
Sub subTodaysDate(Control As IRibbonControl)

With Selection
    .Value = Date
End With

End Sub

我可以管理静态值没问题,但我无法让编辑框动态更改。我什至没有收到可能指向正确方向的错误消息。

标签: excelxmlvba

解决方案


我知道那会成功的。寻求帮助,在您等待的时候自己解决问题。

我忘记使编辑框无效。

VBA 现在读取为:

    Private Sub Worksheet_Change(ByVal Target As Range)

Call RibEditBox

End Sub

Public Sub RibEditBox()

NetFigure = Range("TodaysUses").Value

globalRibbon.InvalidateControl ("NetFigureText")

End Sub

推荐阅读