EXCEL VBA - 遍历列中的单元格,如果不为空,则将单元格值打印到另一列

标签 excel vba if-statement for-loop vlookup

我是 Excel VBA 的新手,还不太熟悉所有不同的函数等,我很确定我了解如何在 FOR 循环中使用 IF 语句,所以我不太确定如何着手创建代码。

这是我希望发生的事情:

A1 Food       B1 Selected?   D1 Selections
A2 Grapes     B2 Yes         D2 Grapes
A3 Tomato     B3             D3 Mango
A4 Mango      B4 Yes         D4 Spinach
A5 Spinach    B5 Yes     
A6 Carrots    B6
A7 Onion      B7 

我的思考过程:

1) 在 B2 到 B7 的范围内创建一个 FOR 循环来检查值 'YES'
2)如果值为yes,则将A中相邻单元格中对应的值打印到D中。
3) 否则,它应该继续遍历单元格。

我想VLOOKUP也涉及if语句的某处,需要定义变量来建立范围?

非常感谢任何帮助。

谢谢!

最佳答案

试一试:

Sub FoodPicker()
    Dim N As Long, i As Long, j As Long
    N = Cells(Rows.Count, "A").End(xlUp).Row
    j = 2
    For i = 2 To N
        If Cells(i, "B").Value = "Yes" Then
            Cells(j, "C").Value = Cells(i, "A").Value
            j = j + 1
        End If
    Next i
End Sub

如果您愿意使用 1,2,3 而不是 yes,yes,yes 您可以避免使用宏。

关于EXCEL VBA - 遍历列中的单元格,如果不为空,则将单元格值打印到另一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27000953/

相关文章:

excel - 从 Excel 中的客户端应用程序导出 Firestore 数据

vba - 在 Excel 中透视数据的宏或方法?

sql - 基于一列具有唯一值的频率的缺乏而对一列进行不同计数

r - 嵌套 ifelse() 是最糟糕的;什么是最好的?

excel - 一个 If 的 VLOOKUP

vba - 选择多个单元格

excel - 将工作表名称添加到工作表更改日志

excel - 使用 VBA 在 Excel 范围内查找第一个公式的最快方法是什么?

excel - 如何以格式 12 :07 rather than 12:7? 显示时间

if-statement - 批处理脚本输入问题