Прокрутите столбец на листе, скопируйте каждое значение для вставки в другие листы - PullRequest
0 голосов
/ 06 февраля 2019

Я пытаюсь перебрать столбец A (ячейки от A3 до A5) листа Sheet1 (значения ячеек 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

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

Копировать на листы

Визуализировать

enter image description here

Код

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
0 голосов
/ 06 февраля 2019

Это должно работать:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...