#excel #vba
#excel #vba
Вопрос:
Мой текущий код VBA извлекается из одного листа и разбивает данные на 2 в зависимости от условия (какое значение в столбце A). Он копирует всю строку на основе моего текущего кода, который
ОБНОВИТЬ КОД:
Sub discoCopydata()
'DEFINES THE SHEETS AND THE RANGE USED FOR THE COPY PROCESS
Dim dataSource As Worksheet: Set dataSource = ThisWorkbook.Sheets("Miscellaneous Holds")
Dim dataTargetA As Worksheet: Set dataTargetA = ThisWorkbook.Sheets("CDN")
Dim dataTargetB As Worksheet: Set dataTargetB = ThisWorkbook.Sheets("US")
Dim dataSourceRange As Range: Set dataSourceRange = dataSource _
.Range("A1:A" amp; dataSource.Cells(dataSource.Rows.Count, "A").End(xlUp).row)
' LOOP CAN BE ADJUSTED TO MULTIPLE CONDITIONS
For Each Cell In dataSourceRange
'IS THE DATA FOR CAN?
If Cell.Value = "CAN" = True Then
dataTargetA.Range("A" amp; Rows.Count).End(xlUp).Offset(1).EntireRow.Value _
= Cell.EntireRow.Value
'IS THIS US DATA?
ElseIf Cell.Value = "US" Then
dataTargetB.Range("A" amp; Rows.Count).End(xlUp).Offset(1).EntireRow.Value _
= Cell.EntireRow.Value
End If
Next
Завершить вложенный
Что мне нужно сделать, так это ограничить это диапазоном, т.Е. От A5: K1000, поскольку это размер моих импортированных данных. Могу ли я сделать это в рамках моего кода. Я мог бы переключиться Cell.EntireRow.Value
на Cell.Range.Value
то, какие данные должны правильно вставляться в диапазон ячеек?
Комментарии:
1. Трудно точно сказать, что вам нужно: одна строка кода не дает большого контекста.
2. Просто обновил код, я думаю, если я изменю ячейку. Полное значение Row.Value в ячейку.Range. Значение, оно будет работать, но я ошибка: (
Ответ №1:
Попробуйте:
If Cell.Value = "CAN" = True Then
dataTargetA.Range("A" amp; Rows.Count).End(xlUp).Offset(1).Resize(1,11).Value _
= Cell.Resize(1, 11).Value
Комментарии:
1. Сначала это не работало, но я удалил Cell.Resize до (1, 10).Value, и это устранило проблему! Спасибо, Тим!