有条件地根据命名范围移动数据

时间:2017-09-12 21:03:01

标签: arrays vba excel-vba loops if-statement

这让我疯了一会儿。从理论上讲,我试图做的事情相当简单。

我有一个我关心的名单。此名称列表位于命名范围内。我想打开一个报告,查看列表中是否有特定列中的名称,如果是,请将其移动。否则,不要移动它。我已经尝试将列表放在一个范围内,在一个变体中,只是直接引用它。我已经尝试过循环,条件,循环内的循环,工作表函数,没有工作表函数,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

编辑:预期行为:只有一些行会移动。实际行为:没有行移动。标题正在正确移动。

0 个答案:

没有答案