Так что я новичок в Excel/VBA, и мне было предложено попытаться выполнить напряженную задачу и автоматизировать процесс. Мне нужно захватить каждый идентификатор билета на листе 1 (по одному) и проверить, находится ли он во втором листе. Затем тот же процесс для листа 2, сравнивающий лист1. Идентификаторы билетов указаны в столбце 2 листов. Если я не найду идентификатор билета на другом листе, мне нужно добавить эту целую строку идентификатора билета на третий лист.Аутентификационные столбцы неконкретных ячеек Excel VBA
Dim i As Integer, TicketId As Range, CellId As Range
Dim SearchRange1 As Range, SearchRange2 As Range
Dim rowCount1 As Integer, rowCount2 As Integer, x As Integer
x = 1
'Get row counts from both sheets and set search ranges##
Sheets("Sheet1").Select
rowCount1 = Range("A2", Range("A2").End(xlDown)).Count
Set SearchRange1 = Range("B2", Range("B2").End(xlDown))
Sheets("Sheet2").Select
rowCount2 = Range("A2", Range("A2").End(xlDown)).Count
Set SearchRange2 = Range("B2", Range("B2").End(xlDown))
'loop to compare differences in sheet1 to sheet2 and add to third sheet##
For i = 2 To rowCount1
Sheets("Sheet1").Select
Set TicketId = Cells(i, 2)
Set CellId = SearchRange2.Find(What:=TicketId)
If CellId Is Nothing Then
Rows(i).Select
Selection.Copy
Sheets("Sheet3").Select
Cells(x, 1).Select
Cells(x, 1).PasteSpecial
Rows(x).Select
Selection.Columns.AutoFit
'Cells(x, 1).Value = TicketId.Value##
x = x + 1
End If
Next i
'Sheets("Sheet2").Select##
Application.CutCopyMode = False
Моя проблема заключается в том, что, когда я получаю данные в третьем листе, я не могу получить столбцы, чтобы соответствовать правильно, и я не могу видеть все данные. Я исследовал и нашел команду AutoFit, но я не знаю, как ее реализовать в моем коде. Я видел другие реализации AutoFit, но кодер всегда знает диапазон, который он использует специально. Я не знаю строку, в которую я помещаю данные. Я включил одну из многих реализаций, которые я пробовал: выбор строки и автоподбор моего выбора. Предложения? В качестве побочного примечания мой метод склеивания также является единственным, который будет работать для меня, я попытался использовать pastespecial с: = xlPasteValues и: = xlPasteFormats, но это тоже не сработало.
'Строки (x) .Выберите | Selection.Columns.AutoFit' вы выбираете строку, затем пытается автоподнять столбец .... что это ??? Edit: также Batman свяжет вас, чтобы избежать использования 'select'. – findwindow
Мне нужно автоподтвердить столбцы всей строки. это была одна из многих вещей, которые я пробовал. Я не знаю, с чего начать. Я новичок в этом языке, я начал этот проект 2 дня назад и ничего не знал о vba. Прошу прощения, если код небрежный и неэффективный. – rdan1
Лол, конечно, Бэтмен не борется с преступностью. Это хорошо для 2 дней^_^ – findwindow