使用VBA将选定列复制并粘贴到Excel表格的末尾

使用VBA将选定列复制并粘贴到Excel表格的末尾,excel,vba,copy-paste,Excel,Vba,Copy Paste,在同一工作表中,我有一个表,每次添加新数据时,我需要将该表的最后4列复制到该表的右端,以便添加新数据。主要原因是我总是想保持相同的格式,有些列有下拉列表和公式 我在下面的网站上找到了下一个代码。它非常适合复制/粘贴 行,所以我尝试修改代码以对列执行此操作,但我无法管理 我是VBA新手,刚刚开始学习如何编写宏,所以如果您对我能做什么有任何反馈,我将不胜感激 如果总是只想复制最后4列,请尝试此操作。根据需要调整表名 Sub CopySelectionVisibleRowsEnd() Dim my

在同一工作表中,我有一个表,每次添加新数据时,我需要将该表的最后4列复制到该表的右端,以便添加新数据。主要原因是我总是想保持相同的格式,有些列有下拉列表和公式

我在下面的网站上找到了下一个代码。它非常适合复制/粘贴 行,所以我尝试修改代码以对列执行此操作,但我无法管理

我是VBA新手,刚刚开始学习如何编写宏,所以如果您对我能做什么有任何反馈,我将不胜感激


如果总是只想复制最后4列,请尝试此操作。根据需要调整表名

Sub CopySelectionVisibleRowsEnd()

Dim myList As ListObject
Dim rng As Range
Dim myListCols As Long

Set myList = ActiveSheet.ListObjects("Table1")
myListCols = myList.Range.Columns.Count
Set rng = Range("Table1[#All]").Resize(, myListCols + 4)
myList.Resize rng

myList.ListColumns(myListCols - 3).Range.Resize(, 4).Copy myList.ListColumns(myListCols + 1).Range

End Sub

那么你要添加新列吗?是的,我每次都需要在表的末尾添加新列。这非常有效!我可以添加什么代码来始终复制数据位于列标题顶部的单元格?我被困在{Range(“H2:H3”)。选择Selection.Copy},我不知道如何将它粘贴到第一个复制的列标题的顶部。在混乱了一段时间后,这对我起了作用:Sub CopyPaste2LastCol()Dim myList As ListObject Dim rng As Range Dim myListCols Long Dim lastRow As String Dim lastCol As String Set myList=ActiveSheet.ListObjects(“table#survey”)myListCols=myList.Range.Columns.Count Set rng=Range(“table#survey[#All]”)。调整(,myListCols+4)myList的大小。调整rng myList.ListColumns的大小(myListCols-3)。调整范围(,4)。复制myList.ListColumns(myListCols+1)。范围($M12:$M13”)。选择选项。复制单元格(12,myListCols+2)。选择活动表。粘贴结束子项
Sub CopySelectionVisibleRowsEnd()

Dim myList As ListObject
Dim rng As Range
Dim myListCols As Long

Set myList = ActiveSheet.ListObjects("Table1")
myListCols = myList.Range.Columns.Count
Set rng = Range("Table1[#All]").Resize(, myListCols + 4)
myList.Resize rng

myList.ListColumns(myListCols - 3).Range.Resize(, 4).Copy myList.ListColumns(myListCols + 1).Range

End Sub