【发布时间】:2017-10-02 04:23:48
【问题描述】:
我正在尝试学习如何在 subs 之间来回传递值。我创建了几个宏子,它们最终在它们之间一遍又一遍地使用相同的代码行。首先,我希望能够查找/计算列数和行数。这是我到目前为止所拥有的,但它不起作用。
我还想将它从列扩展到行。
Public Sub main()
Dim lCols As Integer
Dim lRows As Integer
lCols = countCols(Sheet1)
Sheet1.Range("M2").Value = lCols
End Sub
Public Function countCols(sheetValue As Worksheet) As Variant
countCols = sheetValue.Cells(Rows.Count, 1).End(x1Up).Row
Exit Function
End Function
现在它挂在函数中......似乎它没有将“Sheet1”传递给 sheetValue。
【问题讨论】:
-
x1Up应该是xlUp小写L而不是1。 -
仅供参考,我之前已经回答过这个问题,请参阅此链接:stackoverflow.com/questions/17998773/…
-
如果 Scott 的评论不能解决您的问题,请更新问题,详细说明您所说的“挂起”是什么意思。 (使用
x1Up而不是xlUp通常会使代码崩溃并出现“应用程序定义的或对象定义的错误”,或者只是返回一个不正确的值,而不是挂起。) -
提示:输入所有小写命令,如
xlup,VBA 编辑器会将其更改为xlUp。如果您没有看到更改,则说明您输入错误 .... 与变量相同 .... 在定义dim lRows As long时使用大写和小写,但是当您使用变量时使用全部小写....value = lcols,编辑器会将其更改为.....Value = lCols.... 如果它没有更改,那么您输入错误
标签: vba excel function user-defined-functions