gpt4 book ai didi

vba - 在 Excel 2016 中使用 VBA 将所选范围移动到一列

转载 作者:行者123 更新时间:2023-12-02 17:32:22 25 4
gpt4 key购买 nike

我需要能够做到

  1. 在 A 列中查找值
  2. 选择该值及其上方的所有内容
  3. 在一列上偏移所有这些值

下面的代码就是这样做的 - 但是,我试图加快代码执行速度,而复制和粘贴操作会减慢代码执行速度。有没有一种方法可以在不剪切/粘贴的情况下完成此任务?我想坚持使用 VBA(副公式),因为这是一个更大程序的一部分。

谢谢!

Sub FindValueAndAboveThenMoveOver ()
Dim sht1 as Worksheet
Set sht1 = Sheets("Convert")

sht1.Columns("A:A").Find("XXXX"), LookIn:=xlValues).Select
Range(ActiveCell.Offset(0, 0), "A1").Select
Selection.Cut
Range("B1").Select
ActiveSheet.Paste
End Sub

最佳答案

剪切和粘贴没有任何问题,但您可以避免它,并且避免选择会加快速度。另外,您应该首先检查是否找到了一些东西以避免错误。

Sub FindValueAndAboveThenMoveOver()

Dim sht1 As Worksheet, r As Range

Set sht1 = Sheets("Convert")
Set r = sht1.Columns("A:A").Find("XXXX", LookIn:=xlValues)

If Not r Is Nothing Then
'should add sheet references here too
With Range("A1").Resize(r.Row)
Range("B1").Resize(r.Row).Value = .Value
.ClearContents
End With
End If

End Sub

关于vba - 在 Excel 2016 中使用 VBA 将所选范围移动到一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48303818/

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