Доброго времени суток! Возникла проблема, нужно *очистить/подправить* файл с таблицей и привести его в нужный вид для дальнейшего использования. Исходный файл может изменяться количеством строк, но в принципе то же самое. Подскажите, пожалуйста, с чего начать?
Доброго времени суток! Возникла проблема, нужно *очистить/подправить* файл с таблицей и привести его в нужный вид для дальнейшего использования. Исходный файл может изменяться количеством строк, но в принципе то же самое. Подскажите, пожалуйста, с чего начать?Stormy
Берёте usedrange (удобнее в массив) и пошли циклом вниз по первому столбцу - как встретили "Code" - начинаем копировать данные, встетили пустоту - перестали копировать данные. Ну и в общем всё. Эаголовки можно брать, а можно и не брать - обычно достаточно первого заголовка.
Берёте usedrange (удобнее в массив) и пошли циклом вниз по первому столбцу - как встретили "Code" - начинаем копировать данные, встетили пустоту - перестали копировать данные. Ну и в общем всё. Эаголовки можно брать, а можно и не брать - обычно достаточно первого заголовка.Hugo
a = ActiveSheet.UsedRange.Value ReDim b(1 To UBound(a), 1 To 5) For i = 1 To UBound(a) If a(i, 1) = "Code" Then f = True If a(i, 1) = "" Then f = False If f Then ii = ii + 1 b(ii, 1) = CStr(a(i, 1)) b(ii, 2) = a(i, 4) b(ii, 3) = a(i, 7) b(ii, 4) = a(i, 8) b(ii, 5) = a(i, 10) End If Next If ii > 0 Then Workbooks.Add(1).Sheets(1).[a1].Resize(ii, 5) = b End Sub
[/vba] Но к первому столбцу есть вопросы...
Вот например так: [vba]
Код
Sub tt() Dim a(), f As Boolean, i&, ii&
a = ActiveSheet.UsedRange.Value ReDim b(1 To UBound(a), 1 To 5) For i = 1 To UBound(a) If a(i, 1) = "Code" Then f = True If a(i, 1) = "" Then f = False If f Then ii = ii + 1 b(ii, 1) = CStr(a(i, 1)) b(ii, 2) = a(i, 4) b(ii, 3) = a(i, 7) b(ii, 4) = a(i, 8) b(ii, 5) = a(i, 10) End If Next If ii > 0 Then Workbooks.Add(1).Sheets(1).[a1].Resize(ii, 5) = b End Sub
Hugo, Благодарю. Сейчас буду попробую. У меня появилось мысль сделать немного иначе, но Ваш вариант выглядит проще.
Отлично. Все так и есть, Ваш вариант более удобен. А как можно сохранить результат не в новую книгу , а в уже имеющуюся ? Допустим. Книга - Расчет , лист - База данных
Hugo, Благодарю. Сейчас буду попробую. У меня появилось мысль сделать немного иначе, но Ваш вариант выглядит проще.
Отлично. Все так и есть, Ваш вариант более удобен. А как можно сохранить результат не в новую книгу , а в уже имеющуюся ? Допустим. Книга - Расчет , лист - База данныхStormy
Место для рекламы.
Сообщение отредактировал Stormy - Вторник, 27.05.2014, 11:02
Меня смущает в исходнике -144646 - мой код его превращает в 21.12.1503, т.к. там исходный формат ячейки Дата. Но что-то тут не так.. Как выгрузить в существующую книгу и лист - прописываете его вместо Workbooks.Add(1).Sheets(1) Конкретнее не скажу - там на практике возможны варианты. Возможно подойдёт Workbooks("Расчет").Sheets("База данных")
Меня смущает в исходнике -144646 - мой код его превращает в 21.12.1503, т.к. там исходный формат ячейки Дата. Но что-то тут не так.. Как выгрузить в существующую книгу и лист - прописываете его вместо Workbooks.Add(1).Sheets(1) Конкретнее не скажу - там на практике возможны варианты. Возможно подойдёт Workbooks("Расчет").Sheets("База данных")Hugo
Таблица результат экспорта из PDF, там уже начинается косяк. 21.12.1503 воспринимается как дата, режим общий превращает ее в -144646 , а Ваш код обратно в 21.12.1503 . В целом все верно.
Таблица результат экспорта из PDF, там уже начинается косяк. 21.12.1503 воспринимается как дата, режим общий превращает ее в -144646 , а Ваш код обратно в 21.12.1503 . В целом все верно.Stormy