Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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
如何在vb中的每个非空单元格后添加excel中的预定义行_Excel_Vba - Fatal编程技术网

如何在vb中的每个非空单元格后添加excel中的预定义行

如何在vb中的每个非空单元格后添加excel中的预定义行,excel,vba,Excel,Vba,我在excel中有一个1对多字段的平面文件导出。 我希望通过添加具有预定值的行来更新数据部分 A. B C 约翰 男性 高的 黑暗的 英俊的 玛丽 女性 苗条的 有趣的 凯伦 女性 烦人的 '选择“c1”单元格,然后运行此宏 公共子InsertSingle() 变暗s为范围 设置s=ActiveCell Dim第一次作为布尔值 第一次=真 而s.值“” 如果s.Offset(,-2).值为“”,则 如果不是第一次 s、 EntireRow.在上面插入XLX s、 偏移量(-1,0)。值=“单个”

我在excel中有一个1对多字段的平面文件导出。 我希望通过添加具有预定值的行来更新数据部分

A. B C 约翰 男性 高的 黑暗的 英俊的 玛丽 女性 苗条的 有趣的 凯伦 女性 烦人的
'选择“c1”单元格,然后运行此宏
公共子InsertSingle()
变暗s为范围
设置s=ActiveCell
Dim第一次作为布尔值
第一次=真
而s.值“”
如果s.Offset(,-2).值为“”,则
如果不是第一次
s、 EntireRow.在上面插入XLX
s、 偏移量(-1,0)。值=“单个”
其他的
第一次=错误
如果结束
如果结束
设置s=s.Offset(1,0)
温德
端接头

请带上这本书学习。然后编辑您的问题并发布代码。这不是一个免费的脚本编写服务。胡安·卡洛斯,这是你在这里的第一个答案,所以请带上它学习。我们不想通过为那些没有表现出任何努力的人编写代码来鼓励懒惰的问题。但是我很高兴你这么做了,因为这远远超出了我的舒适区,我从你的解决方案中学到了东西。我稍微调整了一下,做了比我需要的更多的事情。非常感谢你!
'select "c1" cell and then run this macro

Public Sub InsertSingle()

    Dim s As Range
    Set s = ActiveCell
    
    Dim firstTime As Boolean
    firstTime = True
    
    While s.Value <> ""
    
       If s.Offset(, -2).Value <> "" Then
          If Not firstTime Then
            s.EntireRow.Insert xlAbove
            s.Offset(-1, 0).Value = "single"
          Else
            firstTime = False
          End If
       
       End If
       
       Set s = s.Offset(1, 0)
    
    Wend

End Sub