MS Excel 2010 - VBA 在一列中查找客户编号并用是或否标记相应的列
MS Excel 2010 - VBA to lookup in one column a customer number and Tag the corresponding column with Yes or No
我有一个非常大的客户编号数据集,我们不能只使用 =IF(E3=160248, "YES", "NO")
将特定客户编号 160248 标记为是或否。相反,我想使用 VBA 代码在列 E 中查找 Customer_Number 并在列 AG 的相应行中查找 return 是或否,称为 Incorporated_160248。我没有在 VBA 中执行 If then 子句,所以我不知道从哪里开始。请注意,每个月数据集都可能发生变化。一个月它可能是 4,000 个条目,接下来是 3,500 个,因此它必须是动态的。有什么想法吗?
Sub TagTryco()
Dim CN As Integer, result As String
CN = Range("E:E").Value
If CN = 160248 Then
result = "YES"
Else
result = "NO"
End If
Range("AG:AG").Value = result
End Sub
我收到编译错误:参数数量错误或 属性 赋值无效。
此代码现在有效:
Sub TagTryco()
Dim listLength
listLength = Worksheets("ILS_Import").Cells(Rows.Count, "E").End(xlUp).Row - 1
Dim i As Integer
For i = 2 To listLength + 2
If Worksheets("ILS_Import").Range("E" & i) = 160248 Then
Worksheets("ILS_Import").Range("AG" & i) = "Yes"
Else
Worksheets("ILS_Import").Range("AG" & i) = "No"
End If
Next
End Sub
要知道您有多少条目:
dim listLength
listlength = Sheet1.Cells(Rows.Count, "E").End(xlUp).Row - 1 'I assumed column E, starting at row 2
你需要从第2行循环到第2行+listLength,查看E列单元格,是否等于你的数字:
dim i as integer
for i = 2 to listLength + 2
If Range("E" & i) = 160248 Then
Range("AG" & i) = "Yes"
Else
Range("AG" & i) = "No"
End If
Next
如果您希望扫描不同的数字,您可以调整代码以使用您在其中输入该数字的单元格中的值,或者使用输入框输入您要查找的数字,或其他内容。此代码未经测试。
如果您想使用您分配的列名而不是 AG(更安全),您可以使用类似以下内容的内容:
= Range("Incorporated_160248")(i+1)
相反,它给出了偏移量为 i 的列。应该会带您到正确的单元格。
我有一个非常大的客户编号数据集,我们不能只使用 =IF(E3=160248, "YES", "NO")
将特定客户编号 160248 标记为是或否。相反,我想使用 VBA 代码在列 E 中查找 Customer_Number 并在列 AG 的相应行中查找 return 是或否,称为 Incorporated_160248。我没有在 VBA 中执行 If then 子句,所以我不知道从哪里开始。请注意,每个月数据集都可能发生变化。一个月它可能是 4,000 个条目,接下来是 3,500 个,因此它必须是动态的。有什么想法吗?
Sub TagTryco()
Dim CN As Integer, result As String
CN = Range("E:E").Value
If CN = 160248 Then
result = "YES"
Else
result = "NO"
End If
Range("AG:AG").Value = result
End Sub
我收到编译错误:参数数量错误或 属性 赋值无效。
此代码现在有效:
Sub TagTryco()
Dim listLength
listLength = Worksheets("ILS_Import").Cells(Rows.Count, "E").End(xlUp).Row - 1
Dim i As Integer
For i = 2 To listLength + 2
If Worksheets("ILS_Import").Range("E" & i) = 160248 Then
Worksheets("ILS_Import").Range("AG" & i) = "Yes"
Else
Worksheets("ILS_Import").Range("AG" & i) = "No"
End If
Next
End Sub
要知道您有多少条目:
dim listLength
listlength = Sheet1.Cells(Rows.Count, "E").End(xlUp).Row - 1 'I assumed column E, starting at row 2
你需要从第2行循环到第2行+listLength,查看E列单元格,是否等于你的数字:
dim i as integer
for i = 2 to listLength + 2
If Range("E" & i) = 160248 Then
Range("AG" & i) = "Yes"
Else
Range("AG" & i) = "No"
End If
Next
如果您希望扫描不同的数字,您可以调整代码以使用您在其中输入该数字的单元格中的值,或者使用输入框输入您要查找的数字,或其他内容。此代码未经测试。
如果您想使用您分配的列名而不是 AG(更安全),您可以使用类似以下内容的内容:
= Range("Incorporated_160248")(i+1)
相反,它给出了偏移量为 i 的列。应该会带您到正确的单元格。