Я начну с того, что я очень новичок в VBA в Excel и самоучка.У меня есть таблица для записи часов тренировок.Я пытаюсь написать код, который ищет непустую ячейку в 3 столбцах, которые "A", "B" или "A & B".Как только код обнаружит непустой столбец, я хочу, чтобы он затем выбрал определенный диапазон (скажем, A1: C1 & D1 & F1: J1), но в строке непустой ячейки ему необходимо скопировать эти значения влибо лист A, лист B или оба листа A и B, в зависимости от того, какой столбец имеет значение.Я хочу, чтобы он вставил следующую пустую строку на этих листах (после очистки листа, чтобы у меня не было дубликатов) в диапазон, скажем, A1: F1 (извините, эти диапазоны являются приблизительными значениями).Затем мне нужен этот код для циклического прохождения каждой строки, которая не является полностью пустой с первых листов.
Я пробовал разные вещи и мне удалось заставить его небольшие элементы работать индивидуально, но я изо всех сил пытаюсь получитьцикл, работающий до следующей непустой ячейки в столбце и как сказать ему выбрать другой диапазон в зависимости от того, в каком столбце он находит значение (количество часов)
Пока я пробовал:
'Sub Macro1()
'' Dim r1, r2, r3, myMultipleRange As Range
'' Set r1 = Sheets("Record").Range(ActiveCell.Offset(0, -3), ActiveCell.Offset(0, -2))
'' Set r2 = Sheets("Record").Range(ActiveCell.Offset(0, 0))
'' Set r3 = Sheets("Record").Range(ActiveCell.Offset(0, 2), ActiveCell.Offset(0, 5))
'' Set myMultipleRange = Union(r1, r2, r3)
' Sheets("Record").Select
' Range("D4:D6").Select
' Selection.End(xlDown).Select
' Range(ActiveCell.Offset(0, 2), ActiveCell.Offset(0, 5)).Select
'' myMultipleRange.Select
'End Sub
Sub Macro1()
Dim r1, r2, r3, myMultipleRange As Range
Set r1 = Sheets("Record").Range("A4:b4")
Set r2 = Sheets("Record").Range("D4")
Set r3 = Sheets("Record").Range("F4:I4")
Set myMultipleRange = Union(r1, r2, r3)
myMultipleRange.Select
End Sub
Я хочу, чтобы первый лист был разбит на другие соответствующие листы, чтобы можно было извлечь итоги и всю другую информацию в этой строке
Это вкладка ввода "Запись" Вкладка ввода
И это одна из двух вкладок вывода «CPD» (другая - «Вне обучения»)
Вкладка вывода
Редактировать: я получил немного дальше с этим сейчас.Вместо того, чтобы пытаться выбрать весь диапазон сразу, я пытаюсь скопировать каждую часть отдельно.Если я прокомментирую, я не уверен, как я смогу сделать это, чтобы пройти через все строки и три столбца, которые являются переменными, хотя, какие-нибудь мысли?
Sub Macro1()
Sheets("CPD").Select
Range("H7:N1449").Select
Selection.ClearContents
Sheets("Record").Select
Range("D4:D6").Select
Selection.End(xlDown).Select
Range(ActiveCell.Offset(0, -3), ActiveCell.Offset(0, -2)).Select
Selection.Copy
Sheets("CPD").Select
Range("H3:K3").Select
Selection.End(xlDown).Offset(1, 0).Select
Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(0, 1)).Select
ActiveSheet.Paste
Sheets("Record").Select
Range("D4:D6").Select
Selection.End(xlDown).Select
Selection.Copy
Sheets("CPD").Select
Range("H3:K3").Select
Selection.End(xlDown).Offset(1, 2).Select
ActiveSheet.Paste
Sheets("Record").Select
Range("D4:D6").Select
Selection.End(xlDown).Select
Range(ActiveCell.Offset(0, 2), ActiveCell.Offset(0, 5)).Select
Selection.Copy
Sheets("CPD").Select
Range("H3:K3").Select
Selection.End(xlDown).Offset(1, 3).Select
ActiveSheet.Paste
End Sub