【发布时间】:2016-11-17 07:54:59
【问题描述】:
如何将以下代码变成一个函数,这样我就可以通过输入类似Function functionname(Cell1, Cell2) 的内容来调用它?
我想说明我是一个超级磨砂人,如果你能告诉我它是如何处理调用值和所有内容的,我会非常喜欢它。例如,如果我需要编写函数 functionname(Cell1.value, Cell2.value) 以使其工作?
总的来说,我寻求有关如何将此代码转换为函数以及稍后如何在代码中使用该函数的知识?
请记住,我是 VBA 的彻底磨砂,所以请具体说明。最好显示工作示例。
Arr = Split(Range("G3").Value, ".")
If Arr(3) = 254 Then
Arr(3) = 1
If Arr(2) < 254 Then
Arr(2) = Arr(2) + 1
Else
Arr(2) = 1
If Arr(1) < 254 Then
Arr(1) = Arr(1) + 1
Else
Arr(1) = 1
If Arr(0) < 254 Then
Arr(0) = Arr(0) + 1
Else
MsgBox "Error! No more IP's available"
End If
End If
End If
Else
Arr(3) = Arr(3) + 1
End If
Range("G2").Value = Join(Arr, ".")
End Sub
【问题讨论】:
-
好的...所以你问我如何更改我昨天给你的代码,但接受了别人的回答? |||您是否希望它作为 UDF 或作为宏激活的真正 VBA 代码?或者可能是您单击的工作表上的一个按钮?
-
是的,对不起,我还是论坛的新手,所以不知道如果我在同一个问题中发布更多问题是否很好。而且我也不知道如何将代码归功于您.. :S 无论如何,我目前正在使用的是将代码作为宏,但宏使该代码适用于 IP 需要更改的几个单元格,而不仅仅是一个。因此,我不想为每个单元格编写这么长的代码,而是想将其缩小到一个函数,在那里我可以只给出 2 个输入,即 row3 中的单元格和 row2 中的单元格。
-
您在您认为最适合您的答案上使用“接受”按钮,然后可以对那些给您好的答案但不是您喜欢的答案的人投赞成票,而对做出正确答案的人投反对票糟糕的答案。我敢打赌,如果您访问该网站的帮助页面,您可以了解它是如何工作的。第 3 行和第 2 行是什么?你提供的信息很少
-
澄清一下:在当前示例中,它是 G2 和 G3。我在同一行中有其他几个需要相同的转换,例如 Z2 和 Z3、AB2 和 AB3 等等。我希望做到这一点,以便我可以在代码中调用你的 if/else 语句的函数,而不必一次又一次地编写整段代码,在可能的情况下用数千行代码填充模块变得更简单。
-
而且它们都是需要相同功能的 IP 加一?