【问题标题】:Loop through a column in a worksheet, copy each value to paste in other worksheets遍历工作表中的列,复制每个值以粘贴到其他工作表中
【发布时间】:2019-02-06 15:26:31
【问题描述】:

我正在尝试遍历工作表 Sheet1 的 A 列(单元格 A3 到 A5)(单元格值为 1、2 和 3)。并将值复制并粘贴到单元格 A1 中的其他工作表中。所以 Sheet2 A1 有 1 , Sheet3 A1 有 2 并且 Sheet4 A1 有 3 。相反,我的代码最终将 3 放入所有工作表中。任何人都可以帮忙吗?在此先感谢

Sub test()
    Dim X As Long, Y As Long

    For X = 2 To Worksheets.Count        
        For Y = 3 To 5
            Sheets("sheet1").Range("A" & Y).Copy Worksheets(X).Range("A1")

End Sub

【问题讨论】:

  • 请注意,您的两个For 循环都缺少Next

标签: excel vba


【解决方案1】:

这应该可行:

Option Explicit

Sub RunIT()
  Dim rng As Range

  Dim intI As Integer

  Set rng = Worksheets(1).Range("A3:A5")

  For intI = 2 To Worksheets.Count
      rng.Cells(intI - 1, 1).Copy Worksheets(intI).Range("A1")
  Next intI

  Set rng = Nothing

End Sub

【讨论】:

  • 太棒了!感谢您的帮助!
【解决方案2】:

复制到工作表

可视化

代码

Sub CopyToWorksheets()

    ' List of Worksheet Names
    Const cSheets As String = "Sheet1,Sheet2,Sheet3,Sheet4"
    Const cRange As String = "A3:A5"  ' Source Worksheet Range
    Const cCell As String = "A1"      ' Target Worksheet Cell Range

    Dim vntWs As Variant  ' Worksheet Array
    Dim i As Long         ' Worksheet Array Row Counter

    ' Split List of Worksheet Names into Worksheet Array.
    vntWs = Split(cSheets, ",")

    ' In Source Worksheet
    With ThisWorkbook.Worksheets(vntWs(0))
        ' Loop through cells of Source Worksheet Range.
        For i = 1 To UBound(vntWs)
            ' Copy value of current cell of Source Worksheet Range
            ' to current Target Worksheet Cell Range.
            .Parent.Worksheets(vntWs(i)).Range(cCell) = .Range(cRange).Cells(i)
        Next
    End With

End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-16
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    • 2018-12-07
    相关资源
    最近更新 更多