如何使用Excel VBA为每个项目的不同范围创建For循环?

如何使用Excel VBA为每个项目的不同范围创建For循环?,excel,vba,Excel,Vba,我每周都会收到一个带有标准化标题的.xlsx文件,但是数据本身会有所不同。相关标题为: A-贷款编号,B-抵押人姓名,C-抵押人姓氏,D-抵押人出生日期 我已经设置了我的宏来执行一些初始的手动步骤,即将标题插入到列E中,并给它分配一个指定的名称,在我的头上设置一个过滤器,过滤出没有填充的名字(B)的抵押人,并且只显示D列中的空白单元格。(因此,我将关注没有DOB映射的抵押人)。我遇到的问题是如何设置一个For循环,或是任何最佳条件语句,它将在D列中的每个空单元格的E列中填充单词“BLANK”,并

我每周都会收到一个带有标准化标题的.xlsx文件,但是数据本身会有所不同。相关标题为:

A-贷款编号,B-抵押人姓名,C-抵押人姓氏,D-抵押人出生日期

我已经设置了我的宏来执行一些初始的手动步骤,即将标题插入到列E中,并给它分配一个指定的名称,在我的头上设置一个过滤器,过滤出没有填充的名字(B)的抵押人,并且只显示D列中的空白单元格。(因此,我将关注没有DOB映射的抵押人)。我遇到的问题是如何设置一个For循环,或是任何最佳条件语句,它将在D列中的每个空单元格的E列中填充单词“BLANK”,并在B列中填充名称。由于数据不同,我不想硬编码一个范围

贷款号码 名字 姓 出生日期 出生日期空白 ------------- ------------ ----------- ------------ ------------------- XXXXXXXXX 山姆 亚当斯 01/01/1999 XXXXXXXXX 杰克 丹尼尔斯 02/02/1999 XXXXXXXXX 约瑟 库埃沃
据我所知,您希望首先确定行数(贷款数),然后检查是否有名字,然后检查是否有出生日期。如果有名字,但没有出生日期,则您希望E列显示为空。如果我理解正确,则此代码应执行此操作:

Sub filter()

Dim numberOfLoans As Integer
Dim row As Integer

'This finds the number of loans (assuming there's no missing
'loan numbers and the first row is the header)

Cells(1, 1).Select
Selection.End(xlDown).Select
numberOfLoans = ActiveCell.row - 1

'This for loops says that if Column B has a name, but Column D
'empty, then Column E will say "Blank"

For row = 1 To numberOfLoans

If Cells(row + 1, 2) <> "" And Cells(row + 1, 4) = "" Then
    Cells(row + 1, 5) = "Blank"
End If

Next row

End Sub
子过滤器()
Dim numberOfLoans作为整数
将行设置为整数
这会找到贷款的数量(假设没有遗漏)
'贷款编号,第一行为标题)
单元格(1,1)。选择
选择。结束(xlDown)。选择
numberOfLoans=ActiveCell.row-1
'这个for循环表示如果列B有一个名称,但是列D
'为空,则E列将显示“空白”
对于行=1到行数
如果单元格(第1行,第2行)“和单元格(第1行,第4行)=”,则
单元格(第1行和第5行)=“空白”
如果结束
下一排
端接头

Hey Dan,非常感谢您的回复。您提供的代码完全按照预期工作!非常感谢!没问题,很乐意帮助!如果有机会,您介意按向上/向下投票下方我的答案旁边的复选标记吗?