Цель моего кода:
Очистите два столбца назначения
На исходном листе перейдите к последней ячейке (1048576) в определенном столбце снизу, перейдите к последней ячейке с данными и выберите оттуда верхнюю ячейку.
копировать, вставлять и удалять дубликаты (удаленные дубликаты являются рабочей частью)
Мне нужно выбрать диапазон снизу из-за встроенных пустых ячеек, которые не позволяют excel выбирать дополнительные ячейки с данными.
Строка, выполняющая выбор, кажется правильной после многочисленных проверок, а также пыталась
- использовать строковую форму ("AC") для параметра
- числовая форма (13)
- поместите номер ячейки в Range()
Несмотря на все мои усилия, строка выдает ошибку «Ошибка времени выполнения« 1004 »: Ошибка метода« Диапазон »объекта« _Global »».
Я удалил даже все остальные параметры, кроме ссылки на одну ячейку, попытался изменить свой код и решить каким-то другим способом.
Часть кода
Sheets("Data").Cells(Rows.Count, "AC").End(xlUp).Row
возвращает значение (номер строки) первой ячейки с данными снизу. Это был бы конец отбора. Я знаю, что есть некоторые части, которые не соответствуют описанию, но они также не имеют значения с точки зрения ошибки. (например, в строке 17-18 выделяется весь столбец, но я могу исправить это позже.)
Вот мой код, я поставил комментарий рядом с проблемной частью.
Sub CopyUniqueProcList()
Dim ContainWord As String
Dim SrcSheet As Worksheet
Dim DestSheet As Worksheet
Dim TypeRng As Range
Dim TypeRngDest As Range
Dim GrundRng As Range
Dim GrundRngDest As Range
Dim TRD_E As Integer
Dim GRD_E As Integer
Set SrcSheet = Worksheets("Data")
Set DestSheet = Worksheets("lTopTenHelper")
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Set TypeRng = SrcSheet.Range("AC4")
Set TypeRngDest = DestSheet.Range("A1")
Set TRD_E = DestSheet.Cells(Rows.Count, "A")
Set GrundRng = SrcSheet.Range("AE4")
Set GrundRngDest = DestSheet.Range("D1")
Set GRD_E = DestSheet.Cells(Rows.Count, "D")
TRD_E = DestSheet.Cells(DestSheet.Rows.Count, "A").End(xlUp).Row
GRD_E = DestSheet.Cells(DestSheet.Rows.Count, "D").End(xlUp).Row
Sheets("lTopTenHelper").Range(TypeRngDest, "A" & TRD_E).Clear
Sheets("lTopTenHelper").Range(GrundRngDest, "D" & GRD_E).Clear
If TypeRng.Value <> 0 Then
Range(TypeRng, "AC" & Sheets("Data").Cells(Rows.Count, "AC").End(xlUp).Row).Copy 'Error thrown here
Sheets("lTopTenHelper").Cells(Rows.Count, "A").End(xlUp).Offset(0).PasteSpecial Paste:=xlPasteValues
End If
Sheets("lTopTenHelper").Range(TypeRngDest, "AC" & Sheets("Data").Cells(Rows.Count, "AC").End(xlUp).Row).RemoveDuplicates Columns:=Array(1), Header:=xlNo
If GrundRng.Value <> 0 Then
Range(GrundRng, "AE" & Sheets("Data").Cells(Rows.Count, "AE").End(xlUp).Row).Copy
Sheets("lTopTenHelper").Cells(Rows.Count, "D").End(xlUp).Offset(0).PasteSpecial Paste:=xlPasteValues
End If '6?
Sheets("lTopTenHelper").Range(GrundRngDest, "AE" & Sheets("Data").Cells(Rows.Count, "AE").End(xlUp).Row).RemoveDuplicates Columns:=Array(1), Header:=xlNo
Application.Calculation = xlCalculationAutomatic
Exit Sub
End Sub
Приветствуется любая помощь/предложение/другое решение задачи. Заранее спасибо.