这让我疯了一会儿。从理论上讲,我试图做的事情相当简单。
我有一个我关心的名单。此名称列表位于命名范围内。我想打开一个报告,查看列表中是否有特定列中的名称,如果是,请将其移动。否则,不要移动它。我已经尝试将列表放在一个范围内,在一个变体中,只是直接引用它。我已经尝试过循环,条件,循环内的循环,工作表函数,没有工作表函数,ubound和lbound,isnumeric,删除行并移动所有内容等等。我无法让它发挥作用。当前的代码集:
Dim i As Long
Dim j As Long
Dim MSCFundList As Range
CABReconFilePath = Range("CABReconFilePath")
Set MSCFundList = Range("MSCFundList")
Workbooks.Open Filename:=CABReconFilePath
Set CabReport = ActiveWorkbook
Workbooks.Open Filename:=MSCReportPath
Set MSCReport = ActiveWorkbook
Set MSTab = MSCReport.Sheets(1)
LastRowMSC = MSTab.Range("A" & Rows.Count).End(xlUp).Row
j = 2 ' count the row offset in the destination range
'Getting in the headers
Set RngMSC = MSTab.Range("A1:AZ1")
CabReport.Sheets("MS").Range("A1:AZ1").Value = RngMSC.Value
For i = 2 To LastRowMSC
Debug.Print LastRowMSC
If IsNumeric(Application.Match(range("E" & I), MSCFundList, 0)) Then
Set RngMSC = MSTab.Range("A" & i & ":AZ" & i)
CabReport.Sheets("MS").Range("A" & j & ":AZ" & j).Value = RngMSC.Value
j = j + 1
End If
下一步
我在我的智慧'结束。我已经浏览了几个不同的堆栈溢出帖子 - 最有希望的一个是Check if a value is in an array or not with Excel VBA
编辑:预期行为:只有一些行会移动。实际行为:没有行移动。标题正在正确移动。