任何人都可以帮助我将Sub转换为函数,以便将其用于不同的表单控件吗?我是VBA擅长的新手,而且我一直试图将这个转换成几个小时而没有运气。如果有人可以提供帮助,请欣赏它。
GetChildCenter proc hwnd:HWND, x:ptr dword, y:ptr dword
local rect:RECT
local parent:HWND
local point:POINT
invoke GetWindowRect, [hwnd], addr rect
mov eax, [rect].left
mov [point].x, eax
add [point].x, CELL_WIDTH/2
mov eax, [rect].top
mov [point].y, eax
add [point].y, CELL_HEIGHT/2
invoke GetParent, [hwnd]
mov [parent], eax
invoke ScreenToClient, [parent], addr point
mov ecx, [x]
mov eax, [point].x
mov [ecx], eax
mov ecx, [y]
mov eax, [point].y
mov [ecx], eax
ret
GetChildCenter endp
感谢。
答案 0 :(得分:1)
范围变量应该使工作表已经合格,因此不需要单独传递它。只需编写你的sub来接受范围参数:
Sub MySub(ByVal rng As Excel.Range)
MsgBox rng.Address
End Sub