Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Решение для преобразования таблиц - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Решение для преобразования таблиц (Макросы/Sub)
Решение для преобразования таблиц
Stormy Дата: Вторник, 27.05.2014, 09:29 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 357
Репутация: 12 ±
Замечаний: 0% ±

Excel 2010
Доброго времени суток!
Возникла проблема, нужно *очистить/подправить* файл с таблицей и привести его в нужный вид для дальнейшего использования.
Исходный файл может изменяться количеством строк, но в принципе то же самое.
Подскажите, пожалуйста, с чего начать?
К сообщению приложен файл: 4527132.xlsx (11.5 Kb) · 8644616.xlsx (10.9 Kb)


Место для рекламы.
 
Ответить
СообщениеДоброго времени суток!
Возникла проблема, нужно *очистить/подправить* файл с таблицей и привести его в нужный вид для дальнейшего использования.
Исходный файл может изменяться количеством строк, но в принципе то же самое.
Подскажите, пожалуйста, с чего начать?

Автор - Stormy
Дата добавления - 27.05.2014 в 09:29
Hugo Дата: Вторник, 27.05.2014, 10:11 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3254
Репутация: 707 ±
Замечаний: 0% ±

2019
Берёте usedrange (удобнее в массив) и пошли циклом вниз по первому столбцу - как встретили "Code" - начинаем копировать данные, встетили пустоту - перестали копировать данные.
Ну и в общем всё.
Эаголовки можно брать, а можно и не брать - обычно достаточно первого заголовка.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеБерёте usedrange (удобнее в массив) и пошли циклом вниз по первому столбцу - как встретили "Code" - начинаем копировать данные, встетили пустоту - перестали копировать данные.
Ну и в общем всё.
Эаголовки можно брать, а можно и не брать - обычно достаточно первого заголовка.

Автор - Hugo
Дата добавления - 27.05.2014 в 10:11
Hugo Дата: Вторник, 27.05.2014, 10:25 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3254
Репутация: 707 ±
Замечаний: 0% ±

2019
Вот например так:
[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
[/vba]
Но к первому столбцу есть вопросы...


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеВот например так:
[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
[/vba]
Но к первому столбцу есть вопросы...

Автор - Hugo
Дата добавления - 27.05.2014 в 10:25
Stormy Дата: Вторник, 27.05.2014, 10:58 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 357
Репутация: 12 ±
Замечаний: 0% ±

Excel 2010
Hugo,
Благодарю. Сейчас буду попробую. У меня появилось мысль сделать немного иначе, но Ваш вариант выглядит проще.

Отлично. Все так и есть, Ваш вариант более удобен.
А как можно сохранить результат не в новую книгу , а в уже имеющуюся ?
Допустим. Книга - Расчет , лист - База данных


Место для рекламы.

Сообщение отредактировал Stormy - Вторник, 27.05.2014, 11:02
 
Ответить
СообщениеHugo,
Благодарю. Сейчас буду попробую. У меня появилось мысль сделать немного иначе, но Ваш вариант выглядит проще.

Отлично. Все так и есть, Ваш вариант более удобен.
А как можно сохранить результат не в новую книгу , а в уже имеющуюся ?
Допустим. Книга - Расчет , лист - База данных

Автор - Stormy
Дата добавления - 27.05.2014 в 10:58
Stormy Дата: Вторник, 27.05.2014, 11:56 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 357
Репутация: 12 ±
Замечаний: 0% ±

Excel 2010
Но к первому столбцу есть вопросы...

Значение в виде 30.01.2025 воспринимается как дата :(


Место для рекламы.
 
Ответить
Сообщение
Но к первому столбцу есть вопросы...

Значение в виде 30.01.2025 воспринимается как дата :(

Автор - Stormy
Дата добавления - 27.05.2014 в 11:56
Hugo Дата: Вторник, 27.05.2014, 12:22 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3254
Репутация: 707 ±
Замечаний: 0% ±

2019
Меня смущает в исходнике -144646 - мой код его превращает в 21.12.1503, т.к. там исходный формат ячейки Дата. Но что-то тут не так..
Как выгрузить в существующую книгу и лист - прописываете его вместо
Workbooks.Add(1).Sheets(1)
Конкретнее не скажу - там на практике возможны варианты.
Возможно подойдёт
Workbooks("Расчет").Sheets("База данных")


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеМеня смущает в исходнике -144646 - мой код его превращает в 21.12.1503, т.к. там исходный формат ячейки Дата. Но что-то тут не так..
Как выгрузить в существующую книгу и лист - прописываете его вместо
Workbooks.Add(1).Sheets(1)
Конкретнее не скажу - там на практике возможны варианты.
Возможно подойдёт
Workbooks("Расчет").Sheets("База данных")

Автор - Hugo
Дата добавления - 27.05.2014 в 12:22
Stormy Дата: Вторник, 27.05.2014, 12:53 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 357
Репутация: 12 ±
Замечаний: 0% ±

Excel 2010
Меня смущает в исходнике -144646

Таблица результат экспорта из PDF, там уже начинается косяк. 21.12.1503 воспринимается как дата, режим общий превращает ее в -144646 , а Ваш код обратно в 21.12.1503 . В целом все верно.


Место для рекламы.
 
Ответить
Сообщение
Меня смущает в исходнике -144646

Таблица результат экспорта из PDF, там уже начинается косяк. 21.12.1503 воспринимается как дата, режим общий превращает ее в -144646 , а Ваш код обратно в 21.12.1503 . В целом все верно.

Автор - Stormy
Дата добавления - 27.05.2014 в 12:53
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Решение для преобразования таблиц (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!