[英]Converting a piece of code into a function, and how to take the function into use. VBA VBA VBA
如何將以下代碼轉換為函數,這樣我就可以通過輸入諸如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
只需將代碼定義為一個函數即可。 檢查此網頁以獲取更多信息...確保在要使用功能的同一工作表中創建模塊。
作為示例,我將向您發送我剛剛創建的這個小功能,以說明您如何操作...
Function funct_sum(x As Integer, y As Integer)
funct_sum = x + y
End Function
現在,此功能將在您的excel工作表中可用。
試試這個。 您所需要做的就是更改sub newloc()
的范圍。
Sub newloc()
Range("G2").Value = PlusOne(Range("G2").Value)
Range("Z2").Value = PlusOne(Range("Z2").Value)
Range("AB2").Value = PlusOne(Range("AB2").Value)
End Sub
Function PlusOne(IP)
Arr = Split(IP, ".")
if(instr(Arr(3), "/")<>0) then
prefix = mid(Arr(3), instr(Arr(3), "/"))
Arr(3) = left(Arr(3), instr(Arr(3), "/")-1)
end if
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
if prefix <>"" then Arr(3) = Arr(3) & prefix
PlusOne = Join(Arr, ".")
End Function
編輯:添加了Z和AB列,以使代碼在如何使用上更加清晰。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.