【发布时间】:2016-10-13 14:12:13
【问题描述】:
我正在努力解决 VBA 中的一个基本问题,希望能得到一些帮助。我想定义一个函数,它从一个没有空格的范围内返回一个数组,如下所示:
所以当我在欧式选项单元格中调用该函数时,该函数应该返回一个没有任何空格的数组,就像在右侧一样。
这是我目前的代码:
Function portfolioX(N)
Dim MyArray(3)
Dim i As Integer
counter = 1
For i = 1 To N
If IsEmpty(i) Then
Next i
Else
portfolio = MyArray
MyArray (counter)
counter = counter + 1
Next i
End If
End Function
我是 VBA 的新手,所以这可能是完全错误的。谢谢!
【问题讨论】:
-
学习VBA首先要了解的是子程序和函数的区别。当您想要简单地将适当的值添加到单个单元格时,请使用函数。当您想要执行任何其他形式的数据表操作时,您需要使用子例程。因此,我不确定您希望代码能为您做什么。如果你能澄清一点,我很乐意提供帮助
-
不清楚您要做什么。你能详细说明一下吗?请包括应评估哪些数据、您希望如何评估以及预期结果。
-
嗨@RGA 谢谢你的帮助!如上图所示,我想要一个将范围作为输入的函数(例如 A1:A13)。该函数应输出一个包含范围内容的数组(上面的 A18:A21),因此不应考虑空白。因此,如果在图片中的范围内调用该函数(以绿色显示),则输出应该是右侧的单元格(在图片中以白色显示)。是不是更清楚了?
-
认为您仍然在混淆函数和子程序,但根据您的描述,我相信您想要一个子程序,它会采用给定范围,然后只粘贴非空白单元格中的值,去掉中间的空格。对吗?
-
正确!很抱歉让您感到困惑!