首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Excel VBA是否选择其他单元格并将其粘贴到另一个工作表中?

Excel VBA是否选择其他单元格并将其粘贴到另一个工作表中?
EN

Stack Overflow用户
提问于 2020-03-05 03:09:40
回答 1查看 64关注 0票数 1

我需要将数据从第8行复制到另一个工作表(工作表2)。我只需要复制其他单元格,它应该从所有单元格IK8中复制单元格C8(值所在的第一个单元格)、E8、G8、I8等等。

有没有办法做到这一点?我已经在for循环中尝试了step函数,但它不起作用,并且只选择一个cell.It仅为单元格H2:H130粘贴一个值。

代码语言:javascript
复制
Sub Workplace()

Dim rng As Range
Dim LastRow As Long
Dim I As Long

LastRow = Worksheets("Questions").Range("C" & Rows.Count).End(xlUp).Row
For I = 8 To LastRow Step 3
Set rng = Worksheets("Questions").Range("C" & I)
rng.Copy
Next I
Worksheets("Sheet1").Range("H2:H130").PasteSpecial Transpose:=True
End Sub
EN

回答 1

Stack Overflow用户

发布于 2020-03-05 03:12:45

您需要递增列,而不是行。

并在循环内移动粘贴,但需要递增目标单元格。

代码语言:javascript
复制
For i = 3 to 245 Step 2 ' column C to column IK
    Set rng = Worksheets("Questions").Cells(8, i)

    With Worksheets("Sheet1")
        Dim dest as Range
        Set dest = .Range("H" & .Rows.Count).End(xlUp).Offset(1)
    End With

    rng.copy Destination:=dest
Next

或者更好的做法是,只需使用Union构建一个范围,然后在一个步骤中进行复制:

代码语言:javascript
复制
For i = 3 to 245 Step 2 ' column C to column IK
    If rng Is Nothing Then
        Set rng = Worksheets("Questions").Cells(8, i)
    Else
        Set rng = Union(rng, Worksheets("Questions").Cells(8, i))
    End If
Next

rng.Copy
Worksheets("Sheet1").Range("H2").PasteSpecial Transpose:=True

Application.CutCopyMode = False

编辑

“有没有办法把它粘贴到工作表1的第H行的第一个空单元格中,而不是给它一个范围?”

是的,如下所示:

代码语言:javascript
复制
Worksheets("Sheet1").Range("H" & Rows.Count).End(xlUp).Offset(1).PasteSpecial Transpose:=True
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60533128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档