命名的列范围vba

我想知道有没有人可以帮忙。 我有下面的代码,根据成本报告(“i”)将I栏中特定条件(“Electric”)的信息提取到Test sheet(“e”)中。 我想避免使用列“我”的静态引用,并将其更改为我的命名参考“MPT”内的工作表内。

Public Sub Main() Set i = Sheets("Cost Report") Set e =Sheets ("Test") Dim d dim j d = 1 j=2 Do until IsEmpty(i.Range("I" & j)) IF i.Range("I" & j) = "Electric" Then d = d+1 e.rows(d).Value-i.Rows(j).Value End if j=j+1 Loop End sub 

我试图插入下面的代码,并将“I”列的引用replace为“IC”,但无法使macros工作。

 Dim rG As Range Dim IC AS Long Set rG=Range("MPT") IC=rG.Column Do Until IsEmpty(i.Range("IC" & j)) If i.Range("IC" & j) = "Electric" Then 

我假设MPT范围只有1列。 如果没有,让我知道。

在这种情况下,您可以限定范围对象并遍历范围中的每个单元格以testing条件。

我也摆脱了j柜台,因为这是多余的。

 Public Sub Main() Set i = Sheets("Cost Report") Set e = Sheets("Test") Dim rG as Range, cG as Range Set rg = i.Range("MPT") Dim d as Long d = 2 For each cG in rG If cG.Value2 = "Electric" Then e.rows(d).Value-i.Rows(d).Value d = d+1 End if Loop End sub 

下面是一个可以做到的样本。 欲了解更多信息,你可以参考以下网站http://www.thespreadsheetguru.com/blog/the-vba-guide-to-named-ranges 。 希望能帮助到你。

 'Single Cell Reference (Worksheet Scope) RangeName = "Year" CellName = "A2" Set cell = Worksheets("Sheet1").Range(CellName) Worksheets("Sheet1").Names.Add Name:=RangeName, RefersTo:=cell