小编Oll*_*ren的帖子

通过自定义按钮运行宏时,VBA错误"参数数量错误或属性分配无效"

我有一个宏,我通过自定义UI编辑器添加的选项卡/组/按钮调用 -

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
    <ribbon startFromScratch="false">
        <tabs>
            <tab id="tabCustomActions" label="Custom ActionsXXX" insertAfterMso="TabDeveloper">
                <group id="GroupTLA" label="TLA Actions">
                    <button id="buttonFormatTLA" label="Format as TLA" image="TLALogo" size="large" onAction="start_tla" />
                </group>
            </tab>
        </tabs>
    </ribbon>
</customUI>
Run Code Online (Sandbox Code Playgroud)

按钮显示很好,带有我的自定义徽标,但是当我点击按钮时,我得到以下错误 -

VBA错误

通常情况下,此错误后未打开VBA,如果我打开开发人员控制台然后尝试单击按钮,则VBA中的代码不会被指示为问题.

奇怪的是,如果我尝试手动运行宏,它可以正常工作,没有错误.有没有人有任何想法如何解决这个问题?

如果您希望查看它,这是我在Pastebin中的完整代码.谢谢.

tabs vba ribbon word-2007 word-vba

13
推荐指数
1
解决办法
1万
查看次数

如何在VB中获得上个月的开始和结束

我试图创建一些VB代码,将获得上个月的开始和结束.我能够在当前这个月只是:

Month(DateValue(Now))
Run Code Online (Sandbox Code Playgroud)

哪个会返回3.从那里我可以带走1给我2个意思二月.这很好,但是当我在1月份,我重复这个并且它给我零 - 我的代码将失败.谁知道如何获得前几个月的开始和结束日呢?

谢谢

ms-access vba access-vba

12
推荐指数
3
解决办法
9万
查看次数

在VBA中动态附加数组

我想根据各种变量的条件追加一个带数字的数组.这是我提出的代码:我从一个空数组开始.

Sub makeArr()
Dim myArr() As Integer
If box1 = True Then
    ReDim Preserve myArr(LBound(myArr) To UBound(myArr) + 1)
    myArr(UBound(myArr)) = 1
End If

If box2 = True Then
    ReDim Preserve myArr(LBound(myArr) To UBound(myArr) + 1)
    myArr(UBound(myArr)) = 2
End If
End Sub
Run Code Online (Sandbox Code Playgroud)

显然这是一个例子,所以不是最优雅的方式,但它不起作用,因为我似乎无法重新调整数组,因为它最初没有ubound或一个lbound.当我调暗它时,myArr(0 to 0)这也失败了.

有任何想法吗?

arrays excel vba excel-vba

9
推荐指数
1
解决办法
3万
查看次数

VBA Excel,输入框不匹配为整数

我的代码

Dim a As Integer
a = InputBox("Enter the number", "Program", "", 7000, 6000)
If a = Empty Then
    ' do code...
Else
    MsgBox "Enter the number."
End If
Run Code Online (Sandbox Code Playgroud)

如果我留下一个空字段,Excel将返回Type Mismatch错误.我想显示一条消息.

excel vba excel-vba

9
推荐指数
2
解决办法
3万
查看次数

当我在VBA中读取它们的值时,如何阻止Word选择每个FormField?

我在Word 2013中有一个模板文档,用户填写了大量的Legacy Text FormFields.在文档的最后,我添加了一个按钮,将答案编译成没有格式化的字符串,然后将其复制到剪贴板.

可以工作,但是在读取每个FormField时,Word文档会在每个文本字段和文档末尾之间来回跳过.这在视觉上令人担​​忧.有没有办法收集每个FormField的值而不用Word将光标/焦点移动到每个字段时读取?

以下是代码示例:

Private Sub cmdCreateNote_Click()

    Call cmdClearNote_Click

    Dim ff As FormFields
    Set ff = ActiveDocument.FormFields

    Dim Output As String
    Output = ff("ddReviewType").Result & vbCrLf

    If ff("chFacInfo").Result Then
        Dim FacInfo
        FacInfo = Array("Field1: ", _
            "Field2: ", _
            "Field3: ", _
            "Field4: ", _
            "Field5: ")

        Output = Output & "FIRST SECTION" & vbCrLf

        For Index = 1 To 5
            If ff("chFacInfo" & Index).Result Then
                Output = Output & FacInfo(Index - 1) & ff("txFacInfo" & …
Run Code Online (Sandbox Code Playgroud)

vba ms-word word-vba

5
推荐指数
2
解决办法
441
查看次数

excel 2010 vba中的"允许文本溢出形状"

我是否可以指出如何使用AddShape定位通过VBA创建的文本框的"允许文本溢出形状"?我已经查看了对象引用textframe/textframe2而没有运气.

这可以在没有vba的情况下实现[但我有很多文本框]:

右键单击[文本框形状] >>格式形状>>文本框>>允许文本溢出形状["自动调整"组下的勾选框]

我也做过宏观录音无济于事

建议非常感谢

excel vba excel-vba

5
推荐指数
1
解决办法
3939
查看次数

使用VBA将值插入excel表的正确方法是什么?

我需要能够使用VBA代码在excel中的空表中插入一大组值.这是代码到目前为止的工作方式.

首先,用户将值输入到用户表单中.然后代码清除表格,然后根据代码中已有的查找条件找到一系列数字.检索到的数据全部包含在单个列中,并像数组一样存储.

从这里开始,我需要将所有值放入表中的某个列(Policy#),从而将表行扩展为检索数据集中的许多行.(如果需要,我确实将计数单独存储为"AC")我要插入的列标题是"Policy#".

请记住,代码当前表中只有一个空行,如何正确插入数据?我试过了

 range("commissionstatement[Policy #]").value = Als
Run Code Online (Sandbox Code Playgroud)

但那不起作用.顺便提一下,Als是一系列价值观.通常要插入我必须插入到大小相等的范围的数组,这就是为什么我已经将行计数作为AC.

我也尝试过使用range("commissionstatement").listobject.listrows但不起作用.

有什么建议?在我实际将数据放入那里之前,我是否需要在表中插入一些等于我添加的数据的行...

range("commissionstatement").listobject.listrows.add ()
Run Code Online (Sandbox Code Playgroud)

然后插入数据?

如果需要更多信息,请与我们联系.谢谢!

arrays vba insert excel-vba listobject

4
推荐指数
1
解决办法
3万
查看次数

使用 MS Access 和 VBA 生成 Ms Word 文档

这是我第一次编写 VBA。我需要使用我的数据库中的数据生成一个 Word Doc(仅限选定表)。我设法使用XXX.Selection.TypeText. 但是我不知道如何为报告包含页眉和页脚。我尝试了很多方法,但无法得到我想要的结果。

我的问题是,我可以使用/打开预定义的 Word 文档(带有页眉和页脚)并在该预定义的 Word 文档中填充我的数据吗?

谢谢!

ms-access vba ms-word

4
推荐指数
1
解决办法
3万
查看次数

VBA圆形百分比

我在excel中有以下vba命令

wbImportFrom.Sheets("Sheet 3").Cells(n, 8).Value
Run Code Online (Sandbox Code Playgroud)

这让我回来了

0,128888889
Run Code Online (Sandbox Code Playgroud)

我可以把它变成百分比

Format(wbImportFrom.Sheets("Sheet 3").Cells(n, 8).Value,"Percent")
-- returns 13.00 %
Run Code Online (Sandbox Code Playgroud)

如何将百分比数字舍入为整数(13%)?其他例子

0,057 => 6%
0,088571429 => 9%
0,15 => 15%
0,048461538 => 5%
0,128888889 => 13%
0,03 => 3%
0 => 0%
Run Code Online (Sandbox Code Playgroud)

我尝试使用Round和Val函数,但它对我不起作用:p

excel vba excel-vba

4
推荐指数
1
解决办法
437
查看次数

如何在多列列表框中获取选定值

我的userform中有一个多列列表框,我希望得到列表框中所选行中所有元素的值.

这是我的用户形式:UserBox与ListBox


就像在照片中一样,我想选择一行然后我会点击按钮Associer,我可以获得这一行的信息.我可以得到第一列,CAN20168301436我想从整行获取信息.
我该怎么做?
这是我点击的按钮事件:

Private Sub CommandButton3_Click()
   a = ListBoxResultatFind.Text
End Sub
Run Code Online (Sandbox Code Playgroud)

excel vba listbox excel-vba userform

4
推荐指数
3
解决办法
4万
查看次数