目前我正在制作一个需要做以下事情的宏。
1)它查看顶行,返回一个命名列
2)然后选择此列
3)然后循环遍历列,寻找大于零的第一个值。
4)然后我获取这个“第一个”实例的行值
5)从我的公共变量中,我得到一个列值(#'s)
6)我将行值和列值组合起来找到我的“数据点”
最后,我想将此值复制到名为“Critical Signals”的同一工作簿中的另一个工作表
这是我遇到麻烦的地方。每次我运行我的代码时都会收到错误“1004”。我似乎无法将我选择的单元格复制并粘贴到我的第二个工作表。有任何想法吗?
Sub Locate_Start_Of_Test()
'Use the Find Method to identify signal columns
Dim SigCol As Integer
Dim SigRow As Integer
Dim Cell As Range
Dim CritRow As Integer
'Variables to hold critical point of Start of Test
SigRow = 1 'Row Location of Signal Names
SigCol = Sheet1.Cells(SigRow, 1).EntireRow.Find(What:="EngAout_N_Actl (rpm)", LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext).Column
'SigCol now holds the value of rpm column
Columns(SigCol).Select
CritRow = 1
For Each Cell In Selection
If Cell.Value > 0 And Cell.Value <> "EngAout_N_Actl (rpm)" Then
Exit For
End If
CritRow = CritRow + 1
Next Cell
Sheets(1).Range(Cells(CritRow, Trip_point)).Copy
Sheets("Critical Signals").Activate
Range("E4").Select
ActiveSheet.Paste
End Sub
答案 0 :(得分:2)
你很近,只需从此行中删除Range
:
Sheets(1).Range(Cells(CritRow, Trip_point)).Copy
所以它看起来像这样:
Sheets(1).Cells(CritRow, Trip_point).Copy
另外,我建议不要使用Active
或Select
语句。例如,要复制和粘贴的4行代码可能会这样:
Sheets("Critical Signals").Range("E4") = Sheets(1).Cells(CritRow, Trip_point)