Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.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 仅当前一列中有数据时,才在VBA中填写公式_Excel_Vba - Fatal编程技术网

Excel 仅当前一列中有数据时,才在VBA中填写公式

Excel 仅当前一列中有数据时,才在VBA中填写公式,excel,vba,Excel,Vba,抱歉,我是新来的。我做了很多搜索,但都没有找到答案,头发也掉光了。 我的数据被分成了几行。下面是一个例子: 第1组 8月4日 萨姆 鲍勃 罗西 第2组 3月13日 卡尔 乔恩 我想插入一列,并在第一列中有数据的地方在该列中添加公式。代码块的长度和位置各不相同。任何帮助或提示都将不胜感激 以下是我到目前为止得到的信息,但它只填补了第一个部分: Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove

抱歉,我是新来的。我做了很多搜索,但都没有找到答案,头发也掉光了。 我的数据被分成了几行。下面是一个例子:

第1组
8月4日
萨姆
鲍勃
罗西

第2组
3月13日
卡尔
乔恩

我想插入一列,并在第一列中有数据的地方在该列中添加公式。代码块的长度和位置各不相同。任何帮助或提示都将不胜感激

以下是我到目前为止得到的信息,但它只填补了第一个部分:

    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("B8").Select
    ActiveCell.FormulaR1C1 = _
        "=VLOOKUP(TRIM(RC[-1]),participants.xlsx!R2C1:R1000C4,3,FALSE)"
    Range("B8").Select
    Selection.AutoFill Destination:=Range(Range("B8"), Range("A8").End(xlDown).Offset(0, 1)) ```

可以在区域中循环(此代码假定单元格不包含公式):

起始数据为橙色,代码添加绿色


编辑以插入列。如果满足您的需要,您可以在开头只插入一列。

为什么需要插入一列?右侧还有一些数据也很重要。。
Sub x()

Dim r As Range

For Each r In Columns(1).SpecialCells(xlCellTypeConstants).Areas
    r.Offset(, 1).Insert shift:=xlToRight
    r.Offset(, 1).Formula = "=row()+1"
Next r

End Sub