首页 > 解决方案 > Excel:将标题行从一个电子表格复制到另一个

问题描述

目前我有以下内容:

Sub CopyHeaders()

Dim rngSource As Range
Dim rngDestination As Range

Sheets("BGC").Select
Set rngSource = Range(Cells(1, 1), Cells(1, Range("A1").End(xlToRight).Column))
rngSource.Copy

Sheets("Promoter").Select
Set rngDestination = Range("A1").End(xlToRight).Offset(0, 1)

rngDestination.Select
ActiveSheet.Paste
End Sub

这从工作表BGC中获取标题行并将其复制到工作表启动器

但是,让我们坐在 BGC 的第一行中有这些数据(C 缺失,即一个空白单元格):

A   B       D

发起人有:

1   2       4

运行它可能会给出:

1   2   A   B

但是我想要:

1   2       4    A  B       D

有什么建议吗?

谢谢

标签: vbaexcel

解决方案


不要使用选择命令。看到这个。

Sub CopyHeaders()

Dim Ws As Worksheet, toWs As Worksheet
Dim rngSource As Range
Dim rngDestination As Range
Dim Head As Variant


Set Ws = Sheets("BGC")
With Ws
     Head = .Range(.Cells(1, 1), .Cells(1, Columns.Count).End(xlToLeft))'<~~ edited
End With

Set toWs = Sheets("Promoter")
Set rngDestination = toWs.Cells(1, Columns.Count).End(xlToLeft).Offset(0, 1)

rngDestination.Resize(1, UBound(Head, 2)) = Head


End Sub

推荐阅读