gpt4 book ai didi

vba - 将数据复制并粘贴到新工作表后如何更改子范围

转载 作者:行者123 更新时间:2023-12-02 18:58:41 27 4
gpt4 key购买 nike

我创建了一个宏来从一张工作表复制数据并将数据转置并粘贴到另一张工作表,如下所示:

Sub sbCopyRangeToAnotherSheet()

'Copy the data
Sheets("Raw Data").Range("A4:A27").Copy
'Transpose and paste data to new sheet
Sheets("Distinct Users").Range("D6:AA6").PasteSpecial Transpose:=True

End Sub

我需要执行 31 次,但不太确定如何执行此操作。我假设我需要在 Range 中使用 .offset 功能,但我不确定如何执行此操作...

例如,我需要将复制的初始范围从 ("A4:A27") 更改为 ("A28:A51"),然后将粘贴范围更改为 ("D7:AA7")。

我想创建一个变量来定义起始单元格,创建另一个变量来定义范围的结束单元格,然后使用偏移量来增加循环内的偏移量。我最大的问题是...我不知道如何定义偏移量的起始单元格和结束单元格!另外,我不确定我是否可以做类似的事情:

Dim lwrRange1 as Cell = "A4"
Dim uprRange1 as Cell = "A27"
Dim lwrRange2 as Cell = "D6"
Dim uprRange2 as Cell = "AA6"

Do While 1 <= 31
'Copy the data
Sheets("Raw Data").Range(lwrRange1:uprRange1).Copy
'Transpose and paste data to new sheet
Sheets("Distinct Users").Range(lwrRange2:uprRange2).PasteSpecial Transpose:=True
lwrRange1 += 24
uprRange1 += 24
lwrRange2 += 1
uprRange2 += 1
i += 1
Loop

任何帮助或见解将不胜感激!

最佳答案

也许尝试使用 For 循环,如下所示:

    Sub sbCopyRangeToAnotherSheet()
Dim i As Integer
Dim rCopy As Range, rPaste As Range

Set rPaste = Sheets("Distinct Users").Range("D6:AA6")
Set rCopy = Sheets("Raw Data").Range("A4:A27")

For i = 0 To 30
'Copy the data
rCopy.Offset(rCopy.Rows.Count * i, 0).Copy
'Transpose and paste data to new sheet
rPaste.Offset(rPaste.Row + i, 0).PasteSpecial Transpose:=True
Next i

End Sub

关于vba - 将数据复制并粘贴到新工作表后如何更改子范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42555983/

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