gpt4 book ai didi

vba - 简单剪切粘贴excel VBA : inconsitent and strange results

转载 作者:行者123 更新时间:2023-12-04 22:06:26 25 4
gpt4 key购买 nike

我需要在事件工作表中剪切并粘贴非空值的行数组。 “E5”是我要剪切的行数组中的第一个非空单元格。这个数组只是一个从 1:10 开始的数字序列,没有间隔。所需的行为是在“F5”处剪切序列并过去。唯一的复杂之处是我需要复制的范围不固定。

试过:

Sub Update()             
ActiveSheet.Range("E5", Range("5:5").End(xlToRight).Address).Copy
ActiveSheet.Range("F5").Select
ActiveSheet.Paste
End Sub

我已经让这段代码工作过一次,或者至少是“剪切”部分。现在,整个代码块的结果输出是:
  • 错误 1004 或 438
  • 代码剪切和粘贴 1:2 到“F5”
  • 1:1 剪切和粘贴到“F5”

  • 请注意,在运行宏之前,我始终确保要剪切的数组完全相同。

    正确的方法是什么?

    确实,我一直在寻找解决方案,但我发现的只是复杂或冗长的宏。 VBA 的结构起初有点不透明,至少对我来说是这样。

    最佳答案

    10分钟无人接听?这可能是我的幸运日:P

    这是你正在尝试的吗?我已经对代码进行了注释,因此您理解它应该没有任何问题。

    Option Explicit

    Sub Sample()
    Dim ws As Worksheet
    Dim lCol As Long

    '~~> Set this to the relevant worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")

    With ws
    '~~> Find the last column which has data in Col 5
    lCol = .Cells(5, .Columns.Count).End(xlToLeft).Column

    '~~> Directly cut paste
    .Range(.Cells(5, 5), .Cells(5, lCol)).Cut .Range("F5")
    End With
    End Sub

    关于vba - 简单剪切粘贴excel VBA : inconsitent and strange results,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20441498/

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