我正在尝试编写一个宏,该宏将从不断更新不同数据量的电子表格中获取数据,并将其粘贴到单个列中的另一个电子表格中而不会覆盖。另一件事是它搜索两个点,其中一个是底部,另一个是第12列中的值“A1”作为顶部定义点。
Sub Thickness()
'
' Thickness Macro
' Transfer Thickness
'
' Keyboard Shortcut: Ctrl+o
Windows("data2.xls").Activate
Call FindLast(FinalRow)
Call FindTop(CurVal)
Do While CurVal <= FinalRow
Windows("data2.xls").Activate
Cells(CurVal, 8).Copy
CurVal = CurVal + 1
Windows("TestMacroProgram.xls").Activate
Sheets("Sheet1").Select
NextRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
Cells(NextRow, 1).Select
ActiveSheet.Paste
Loop
End Sub
Sub FindLast(FinalRow)
FinalRow = Cells(Rows.Count, 1).End(xlUp).Row
End Sub
Sub FindTop(CurVal)
CurVal = FinalRow
Do While Cells([CurVal], [12]).Value <> "A1"
CurVal = CurVal - 1
Loop
End Sub
答案 0 :(得分:0)
问题是你没有从你正在调用的子函数中返回一个值,所以当你调用FindTop
FinalRow
的值为空时,从{返回}时会发生同样的问题{1}}因为FindTop
子中的CurVal
也为空。
如果我需要返回一些东西,我通常会添加一个全局变量,但我确信这是不赞成的,或者我只是将这些潜艇带入主要而不用担心它。我做了一些搜索,我相信下面的代码将适合您并返回正确的值。我无法完成Thickness
但我能够返回两个值,所以它应该工作。我假设你想从Thickness
返回CurVal
?
FindTop