Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel在条件语句中下移行_Excel_Vba - Fatal编程技术网

Excel在条件语句中下移行

Excel在条件语句中下移行,excel,vba,Excel,Vba,我尝试在Excel中执行以下操作: 当然,最简单的方法是拖放,但由于我有许多行和列,这是不可行的。 因此,我认为以下措施应该有效: =IF(B6="Food", "Food", "insert two blank cells") 然而,令我惊讶的是,我找不到seomthing,它允许我在公式中实际使用“insert shift cells down”。我忽略了什么,我需要在这里开始使用VBA吗 谢谢 我相信下面的代码可以实现您的期望: Sub foo() Dim ws As Worksheet

我尝试在Excel中执行以下操作: 当然,最简单的方法是拖放,但由于我有许多行和列,这是不可行的。 因此,我认为以下措施应该有效:

=IF(B6="Food", "Food", "insert two blank cells")
然而,令我惊讶的是,我找不到seomthing,它允许我在公式中实际使用“insert shift cells down”。我忽略了什么,我需要在这里开始使用VBA吗


谢谢

我相信下面的代码可以实现您的期望:

Sub foo()
Dim ws As Worksheet: Set ws = Sheets("Sheet1")
'declare and set your Sheet above
lastrow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
'find the last row with data on Column A

For i = 6 To lastrow 'loop from row 6 to last
    If ws.Cells(i, 1).Value = "Food" Then 'if Food is found
        ws.Cells(i, 2).Insert Shift:=xlDown 'insert a blank cell on Column B
        ws.Cells(i, 2).Insert Shift:=xlDown 'again insert a second blank cell on Column B
    End If
Next i
End Sub

我只需要“after”,例如,在新的表单中,下面的“after”将替换“Before”。我在上图中所做的是将F6:7拖放到F8:9。公式无法添加行,因此您必须深入研究VBA。如果您遇到问题,请尝试发布您的代码。谢谢,@Xabier,这对于开始使用VBA非常有用!您的代码适用于我发布的示例,但是,我的示例有一个缺点。我没有增加更多的专栏,说明第6行可以读为“食物”-“饮料”-“食品”-“食品”-“饮料”,我需要的条件不是“食品”的存在,而是只有当留给它的细胞是“食品”时才是“饮料”。因此,我需要学习如何有两个条件。我想知道的另一件事是如何编写代码,使代码能够在我的所有500列上运行,而不仅仅是第一列(此时似乎出现)。无论如何,谢谢!如果你在完成这项工作时有任何问题,请发布另一个问题,我会尽力回答。。如果我的回答对你有帮助,你会暂时把它作为一个答案吗?谢谢