Я хочу перенести данные с одного листа на другой на основе количества строк, присутствующих в конкретной ячейке - PullRequest
0 голосов
/ 12 января 2019

у меня 2 листа. Я хочу подсчитать количество строк, присутствующих в столбце «A» листа «Instru», и перетащить формулу, представленную в (A1: D1) листа «data», на основе количества строк, представленных в листе «Instru». Я пробовал это, но это не работает. Я новичок в VBA, и я действительно не знаю, где я ошибся.

Sub lastRow()

    Dim wsS1 As Worksheet 'Sheet1
    Dim wsS2 As Worksheet 'sheet2
    Dim lastR As Long

    Set wsS1 = Sheets("Instru")
    Set wsS2 = Sheets("data")

    With wsS1
        lastR = .range("A" & .Rows.Count).End(xlUp)
        With wsS2
            Row.range("A5:KU5" & lastR).Copy wsS2.range("A1")
        End With
    End With
End Sub

Я считаю, что этот столбец присутствует в ведомости "Instru" IMG1

это лист формулы (строки оранжевого цвета), который я хочу перетащить в зависимости от количества строк, присутствующих в инструменте листа

1 Ответ

0 голосов
/ 12 января 2019

попробуйте это. Я не включил заголовки в «Instru». Как в Range("A1:B4")

Эта процедура основана на количестве столбцов в строке 1

Sub lastRow()

Dim wsS1 As Worksheet 'Sheet1
Dim wsS2 As Worksheet 'sheet2
Dim lastR As Long, lastC As Long

Set wsS1 = Sheets("Instru")
Set wsS2 = Sheets("data")

With wsS1
    lastR = .Range("A" & .Rows.Count).End(xlUp).Row - 4
End With

With wsS2
    lastC = .Cells(1, Columns.Count).End(xlToLeft).Column
   Range(.Cells(1, 1).Address, .Cells(1, lastC).Address).AutoFill Destination:=Range(.Cells(1, 1).Address, .Cells(lastR, lastC).Address)

End With
End Sub

- РЕДАКТИРОВАТЬ -

Эта процедура основана на количестве столбцов в строке 3

Sub lastRow2()

Dim wsS1 As Worksheet 'Sheet1
Dim wsS2 As Worksheet 'sheet2
Dim lastR As Long, lastC As Long

Set wsS1 = Sheets("Instru")
Set wsS2 = Sheets("data")

With wsS1
    lastR = .Range("A" & .Rows.Count).End(xlUp).Row - 4
End With

With wsS2
    lastC = .Cells(3, Columns.Count).End(xlToLeft).Column
    Range(.Cells(3, 1).Address, .Cells(3, lastC).Address).AutoFill Destination:=Range(.Cells(3, 1).Address, .Cells(lastR, lastC).Address)

End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...