gpt4 book ai didi

excel - 如何复制数据并直接粘贴到其右侧而不删除所需粘贴范围内已存在的数据?

转载 作者:行者123 更新时间:2023-12-05 05:37:47 25 4
gpt4 key购买 nike

我有 3 列数据 BX、BY、BZ,一旦刷新就会从另一个文件生成最新数据。我想将 BX、BY 和 BZ 中的最新数据复制并粘贴到 CA、CB 和 CC 中,因为 CA、CB 和 CC 中已经有数据 我正在尝试找到一种方法来粘贴 CA:CC 中的现有数据不会丢失,但会向右推 3 列,并粘贴为值,因此 BX、BY、BZ 中存在的公式没有问题。

我目前有一个宏,它从 BX、BY 和 BZ 复制最新数据并将其作为值粘贴到它找到的第一个空白列中,但我不确定如何修改它以使其粘贴最新数据CA:CC 中的数据并将较旧的现有数据推向右侧。

非常感谢任何指导!!

Sub CopyLatest()


' CopyLatest Macro


' Keyboard Shortcut: Ctrl+Shift+L


Const Cols As String = "BX:BZ"



Dim ws As Worksheet: Set ws = ActiveSheet


With ws.UsedRange

Dim srg As Range: Set srg = Intersect(.Cells, ws.Columns(Cols))

Dim drg As Range: Set drg = .Resize(, srg.Columns.Count) _

.Offset(, .Columns.Count)

drg.Value = srg.Value

End With



End Sub

最佳答案

您可以像这样使用通用子:

Sub backupColumnsToTheRight(rgSource As Range)

Dim cntColumnsToCopy As Long
cntColumnsToCopy = rgSource.Columns.Count

Dim rgTarget As Range

With rgSource
Application.ScreenUpdating = False: Application.Calculation = xlCalculationManual

'insert new columns
.Offset(, cntColumnsToCopy).Resize(, cntColumnsToCopy).Insert xlShiftToRight

'define new target range
Set rgTarget = .Offset(, cntColumnsToCopy).Resize(, cntColumnsToCopy)

'write values to target
rgTarget.Value = rgSource.Value
Application.ScreenUpdating = True: Application.Calculation = xlCalculationAutomatic

End With
End Sub
End Sub

你可以像这样从你的主例程中调用它

Sub CopyLatest()

Const colToCopy As String = "BX:BZ"
Dim rgSource As Range
Set rgSource = ActiveSheet.Range(colToCopy)

backupColumnsToTheRight rgSource

End Sub

关于excel - 如何复制数据并直接粘贴到其右侧而不删除所需粘贴范围内已存在的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73053722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com