Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.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_Row_Addition - Fatal编程技术网

Excel 在最后一行下面添加行

Excel 在最后一行下面添加行,excel,vba,row,addition,Excel,Vba,Row,Addition,我正在设计一个包含12行数据的数据提交电子表格(目前为第22到33行)。第34到42行用文本填充。如果要输入12个以上的数据集,我想在第33行下面添加一个新行(第34行),使用分配给按钮的宏,格式与第33行相同。这很简单,但如果我需要第34行下面的另一个新行(现在是第35行),我需要一个灵活的代码来做到这一点;mine总是在第33行下方添加新行,而不是在数据输入集的最后一行下方。我该怎么做?我对VBA很陌生 谢谢 安迪 将“A”更改为始终包含数据的列的名称 然后,可以将lastrow变量用作:

我正在设计一个包含12行数据的数据提交电子表格(目前为第22到33行)。第34到42行用文本填充。如果要输入12个以上的数据集,我想在第33行下面添加一个新行(第34行),使用分配给按钮的宏,格式与第33行相同。这很简单,但如果我需要第34行下面的另一个新行(现在是第35行),我需要一个灵活的代码来做到这一点;mine总是在第33行下方添加新行,而不是在数据输入集的最后一行下方。我该怎么做?我对VBA很陌生

谢谢

安迪

将“A”更改为始终包含数据的列的名称

然后,可以将lastrow变量用作:

Range("A" & lastrow).Value = "blah"

我认为don的答案行不通,因为您声明您在第34到42行中有文本

如果第34行中单元格的文本值不变,则可以搜索该单元格并在其上方插入一行

Dim someText As String
someText = "Text value of row 34"

Dim currentRange As Range
Set currentRange = Selection

With Range("A:A").find(someText) 'change the range if needed
    .EntireRow.Insert
    .Offset(-2).EntireRow.Copy
    .Offset(-1).EntireRow.PasteSpecial xlPasteFormats 'change the paste type as needed
End With
Application.CutCopyMode = False 'get rid of the marching ants
currentRange.Select 'select whatever was selected before
'alternative: Range("A1").Select

谢谢你;这很有魅力!当我运行此命令时,新行被完全选中。如何仅选择A列中的单元格?我编辑了代码以重新选择宏运行前选择的内容。如果您想选择另一个范围,只需更改代码块的最后一行即可。真漂亮!非常感谢您的快速回复。令人惊奇的是:我甚至开始明白这是怎么回事:)!
Dim someText As String
someText = "Text value of row 34"

Dim currentRange As Range
Set currentRange = Selection

With Range("A:A").find(someText) 'change the range if needed
    .EntireRow.Insert
    .Offset(-2).EntireRow.Copy
    .Offset(-1).EntireRow.PasteSpecial xlPasteFormats 'change the paste type as needed
End With
Application.CutCopyMode = False 'get rid of the marching ants
currentRange.Select 'select whatever was selected before
'alternative: Range("A1").Select