请求VBA代码:将SheetA指定区域值追加至Table3末尾
解决方案:将指定区域值追加到Excel表格末尾
以下是满足需求的VBA代码,仅粘贴值到Table3末尾:
Sub AppendValuesToTable() Dim sourceSheet As Worksheet Dim targetTable As ListObject Dim sourceRange As Range Dim targetRow As Range ' 定义源工作表和数据区域 Set sourceSheet = ThisWorkbook.Worksheets("SheetA") Set sourceRange = sourceSheet.Range("Q3:X300") ' 定义目标结构化表格 Set targetTable = ThisWorkbook.ListObjects("Table3") ' 遍历源区域的每一行 For Each row In sourceRange.Rows ' 跳过空行(可选,按需启用) If Application.WorksheetFunction.CountA(row) > 0 Then ' 在表格末尾插入新行 Set targetRow = targetTable.ListRows.Add.Range ' 仅粘贴数值到新行 row.Copy targetRow.PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False ' 清除剪贴板状态 End If Next row End Sub
关键说明
ThisWorkbook指向当前运行代码的工作簿,避免跨文件引用错误ListObjects("Table3")是Excel结构化表格的标准引用方式,比直接引用单元格区域更稳定xlPasteValues确保只粘贴纯数值,不会携带格式、公式或数据验证规则- 空行检查逻辑可根据实际需求删除:如果源区域无空行,直接移除
If...End If块即可
使用步骤
- 打开目标Excel文件,按下
Alt + F11打开VBA编辑器 - 右键左侧工作簿名称 → 插入 → 模块
- 将上述代码粘贴到模块窗口中
- 按下
F5运行代码,或回到Excel界面添加按钮关联此宏
内容的提问来源于stack exchange,提问作者Adrian Buttery
相关产品推荐
相关产品推荐

