相关疑难解决方法(0)

如何从按钮调用宏并传递参数

我想在我的excel工作表中添加一个按钮,它应该调用一个可以处理一个文件的宏(一个整数值).遗憾的是,在创建按钮时,我无法链接任何具有参数的宏.只是输入宏和参数不起作用.

是否有任何简单的解决方案可以在按下按钮时将参数传递给宏?

excel vba excel-vba

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

调用具有多个参数的Sub时VBA返回错误

我试图弄清楚为什么在我调用a 并为其提供多个参数时VBA返回错误.(Compile error: Expected: =)Sub

Sub customerController(cleanStructure As Boolean, firstCol As Integer, latCol As Integer, _
                    lngCol As Integer, Optional startRow As Long, Optional endRow As Long)

Dim i As Long, j As Long, n As Long

If (cleanStructure = False) Then
    'customer data type
    If (startRow = "") Then i = 1
    If (endRow = "") Then j = countRows
    For n = i To j - i + 1
        generateURL(n, firstCol)
        newReadXMLData (url)
        ActiveSheet.Cells(i, …
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba

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

VB6传递值并通过引用传递

我正在努力理解按值传递并在VB6中通过引用传递.我完全理解这些概念是面向对象的编程语言,如.NET和Java(我意识到Java没有通过引用传递).看看下面的代码:

Private Sub Form_Load()

Dim Test As Integer
Test = 1
TestFunction Test 'line 5
MsgBox (Test)

End Sub

Private Sub TestFunction(ByVal i As Integer)
    i = i + 1
End Sub
Run Code Online (Sandbox Code Playgroud)

当我在第5行的Test周围放置括号时,消息框会按照我的预期打印1.现在看看下面的代码:

Private Sub Form_Load()

Dim Test As Integer
Test = 1
TestFunction Test 'line 5
MsgBox Test

End Sub

Private Sub TestFunction(ByRef i As Integer)
    i = i + 1
End Sub
Run Code Online (Sandbox Code Playgroud)

消息框按照我的预期打印2.但是,如果在第5行添加括号,则消息框将打印1,这是我不希望的.即使被调用函数中定义的变量是ByRef,看起来调用函数也可以通过值传递.反之亦然,即如果被调用函数具有定义为ByVal的变量的签名,则它将始终为ByVal(即使调用函数中的变量周围没有括号).在VB6中,这背后的想法是什么?我意识到这是VB6中的一个基本问题,但它让我很困惑.我已经阅读了MSDN文档,我意识到这一切都是正确的,但它并没有解释它背后的原因.

vb6 vbscript vba

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

VB 6呼叫要求和限制

我有几个看起来非常相似的类成员函数:

Public Function ProcessSomething(ByVal X as Currency, ByVal Y as Long) As Boolean
Run Code Online (Sandbox Code Playgroud)

然而,其中一些功能IDE强迫我使用call语句而不是其他功能.

有人能在这里给我一些理解吗?

vb6

0
推荐指数
1
解决办法
64
查看次数

当sub需要参数时,VBA提供语法错误

如图所示,test1来电FillEmptyWith却给了我一个

编译错误:=预期

有人可以帮忙吗?

Sub FillEmptyWith(Range, val)
    For Each cell In Range
        If IsEmpty(cell) Then
            cell.Value = val
        End If
    Next cell
End Sub
Run Code Online (Sandbox Code Playgroud)
Sub test1()
   FillEmptyWith ((Sheets("In Force Earnix").Range("S10:S20")),"N")
End Sub
Run Code Online (Sandbox Code Playgroud)

excel vba

-1
推荐指数
1
解决办法
35
查看次数

标签 统计

vba ×4

excel ×3

excel-vba ×2

vb6 ×2

vbscript ×1