Скопируйте и вставьте только часть строк с одной ячейкой, содержащей изображение, на другой лист, когда условие выполнено - PullRequest
0 голосов
/ 01 марта 2019

У меня есть лист с именем Данные, в котором я перечислял продукты в строках.Информация для каждого продукта находится в столбцах A: W.Столбец A используется для идентификатора компании.Зависит от идентификатора, выбранного в раскрывающемся списке, я хочу, чтобы ячейки P: W вставлялись в лист с именем Quote, начиная со строки 11 в столбцах A: H.Следует отметить, что столбец W на листе данных используется для изображений.

Я нашел несколько кодов в Интернете и безуспешно пытался адаптировать их к своему делу.Во-первых, я не могу скопировать вставить фотографии.Я предполагаю, что должен использовать метод Range.Copy вместо метода PasteSpecial, но я не могу заставить его работать в моем коде.Во-вторых, я не смог найти правильный способ скопировать и вставить только ячейки из столбцов P: W.

Sub Quote()

Dim Data As Worksheet
Dim Quote As Worksheet
Dim CompanyID As String
Dim Finalrow As Integer
Dim i As Integer

Set Data = Sheet3
Set Quote = Sheet2
CompanyID = Sheet6.Range("E5").Value

Data.Select
Finalrow = Cells(Rows.Count, 1).End(xlUp).Row

For i = 2 To Finalrow
    If Cells(i, 1) = CompanyID Then
    Range(Cells(i, 1), Cells(i, 23)).Copy
    Quote.Select
    Rows(11).Select
    Range("A200").End(xlUp).Offset(1, 0).PasteSpecial xlPasteAll
    Data.Select
    End If

Next i

Quote.Select
Range("A11:O200").Delete
Range("A1").Select

End Sub

1 Ответ

0 голосов
/ 01 марта 2019

Попробуйте

Data.Range(Cells(i, 16), Cells(i, 23)).Copy Quote.Range("A200").End(xlUp).Offset(1, 0).resize(1,8)

Вы можете удалить все строки .Select в своем коде.В Excel автоматизация .Select почти никогда не нужна.Также вы уже ссылались на рабочие листы.Если вы используете эти ссылки при определении диапазона, вам не придется переходить на листы.

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