专栏名称: 完美Excel
Excel与VBA技术学习与实践
目录
相关文章推荐
Excel之家ExcelHome  ·  学会几个常用公式,效率提升1.26% ·  2 天前  
Excel之家ExcelHome  ·  批量创建指定名称的工作表 ·  3 天前  
Excel之家ExcelHome  ·  XLOOKUP查数据,够强够快够简单 ·  4 天前  
Excel之家ExcelHome  ·  Power BI助力小白逆袭数据分析达人 ·  1 周前  
完美Excel  ·  自动添加形状并指定宏 ·  6 天前  
51好读  ›  专栏  ›  完美Excel

自动复制当前行

完美Excel  · 公众号  · Excel  · 2024-10-24 05:49

正文

学习Excel技术,关注微信公众号:
excelperfect

标签:VBA

下面的程序将复制当前行。具体为,在当前行下方插入一个空行,然后将当前行的数据完整复制到该行中,并保持行高一致。对于普通工作表数据或者表数据均适用。

详细代码如下:

Sub DuplicateRow() Dim lRow As Long Dim li As ListObject Dim rngStart As Range If TypeName(Selection) = "Range" Then   Set rngStart = Selection.Cells(1)   lRow = rngStart.Row   If lRow < Rows.Count Then     Application.ScreenUpdating = False     If rngStart.ListObject Is Nothing Then       Rows(lRow).Copy       Rows(lRow + 1).Insert Shift:=xlDown       Rows(lRow + 1).RowHeight = Rows(lRow).RowHeight       rngStart.Offset(1).Select     Else       Set li = rngStart.ListObject       If li.SourceType = xlSrcRange Then         If li.AutoFilter.FilterMode Then           li.AutoFilter.ShowAllData         End If         If li.DataBodyRange Is Nothing Then           li.ListRows.Add AlwaysInsert:=True           li.ListRows.Add AlwaysInsert:=True         Else           Application.DisplayAlerts = False           li.ListRows.Add(lRow - li.DataBodyRange.Row + 2).Range.FillDown           Rows(lRow + 1).RowHeight = Rows(lRow).RowHeight           rngStart.Offset(1).Select           Application.DisplayAlerts = True         End If       Else         MsgBox "这个表的SourceType = " & li.SourceType & ", 宏不支持." & vbNewLine & vbNewLine & _          Replace(Replace("0_NO SUPPORT_External data source (Microsoft SharePoint Foundation site)_(xlSrcExternal)|" & _          "1_SUPPORT__Range_(xlSrcRange)|2_NO SUPPORT_XML_(xlSrcXml)|3_NO SUPPORT_Query_(xlSrcQuery)|4_NO SUPPORT_PowerPivot Model_(xlSrcModel)", _          "|", vbNewLine), "_", vbTab), vbInformation       End If     End If     Application.ScreenUpdating = True   End If End IfEnd Sub

核心代码其实很简单,只是多了一些判断语句,使之更通用。如果你经常需要执行复制当前行的操作,又不想手动完成,就可以试试这段代码。

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。
欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料,并通过社群加入专门的微信讨论群,更方便交流。

推荐文章
Excel之家ExcelHome  ·  学会几个常用公式,效率提升1.26%
2 天前
Excel之家ExcelHome  ·  批量创建指定名称的工作表
3 天前
Excel之家ExcelHome  ·  XLOOKUP查数据,够强够快够简单
4 天前
Excel之家ExcelHome  ·  Power BI助力小白逆袭数据分析达人
1 周前
完美Excel  ·  自动添加形状并指定宏
6 天前
左右青春  ·  真相推理师:嬗变(大结局上)
7 年前