|
|
|
|
clipsa |
Среда, 27 Февраля 2008, 16:30
|
Участник
Профиль
Группа: Участник
Сообщений: 6
Регистрация: 08.11.2007
Пользователь №: 18827
Конфигурация
Корпус: -- Процессор: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: -- CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
Помогите пожалуйста. Есть необходимость перенести таблицу из rtf в xls.
Проблема в том, что одна запись в rtf занимет несколько строк xls. Как написать нечто типа скриптика (макроса)? Попробовал вот так Sub rtf() For i = 1 To 1000 If a(i) <> 0 Then k(i) = b(i) + b(i + 1) End Sub
но запускаться не хочет, я так понимаю нужно как-то указать что a,k,b это столбцы Подскажите как сделатью
|
|
|
|
|
clipsa |
Среда, 27 Февраля 2008, 16:58
|
Участник
Профиль
Группа: Участник
Сообщений: 6
Регистрация: 08.11.2007
Пользователь №: 18827
Конфигурация
Корпус: -- Процессор: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: -- CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
немного почитал help получилось так Sub rtf_()
For I = 1 To 1000 If Worksheets(1).Range("A(i)") <> 0 Then Worksheets(2).Range("b(i)") = Worksheets(1).Range("B(i)") & Worksheets(1).Range("B(i)+1") Next End Sub но при попытке запуска пишет Run-time error '1004': Application-defined or object-defined error что не правильно?
Сообщение отредактировал clipsa - Среда, 27 Февраля 2008, 16:59
|
|
|
|
|
clipsa |
Среда, 27 Февраля 2008, 17:19
|
Участник
Профиль
Группа: Участник
Сообщений: 6
Регистрация: 08.11.2007
Пользователь №: 18827
Конфигурация
Корпус: -- Процессор: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: -- CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
Добавил Workbook
Sub rtf_() For i = 1 To 1000 If Workbook.Worksheets(1).Range("A(i)").Value <> 0 Then Workbook.Worksheets(2).Range("b(i)").Value = Workbook.Worksheets(1).Range("B(i)").Value & Workbook.Worksheets(1).Range("B(i)+1").Value Next i End Sub
Теперь Run-time error '424': Object required
Подскажите как парвильно? Очень надо.
|
|
|
|
|
clipsa |
Четверг, 28 Февраля 2008, 0:37
|
Участник
Профиль
Группа: Участник
Сообщений: 6
Регистрация: 08.11.2007
Пользователь №: 18827
Конфигурация
Корпус: -- Процессор: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: -- CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
Всем спасибо! Сделал сам Сообщение отредактировал clipsa - Четверг, 28 Февраля 2008, 0:41
|
|
|
|
|
Барэль |
Четверг, 28 Февраля 2008, 2:12
|
Впередсмотрящий
Профиль
Группа: WinCity Team
Сообщений: 6383
Регистрация: 08.11.2001
Из: Санкт-Петербург, Россия
Пользователь №: 633
Конфигурация
Корпус: CM Centurion 534 + 850W Zalman Процессор: Другой Материнская плата: ASUS M4A79XTD EVO Оперативная память: Samsung - 2x2048 Mb DDR3 PC10600 Видеокарта: 1024 Mb Asus Radeon HD5770 Жесткий диск (винчестер): 250 Gb Seagate SATA (системный) + 2 Tb Seagate LP SATA + 2 Tb Seagate LP SATA Дисковод: 3.5" CD/DVD: Nec 4570 DVD+-RW Модем: -- Сетевой адаптер: OnBoard Звуковая плата: OnBoard Монитор: 22 Samsung SyncMaster P2250 Операционная система: Windows XP Прочее: Акустическая система Microlab Solo 1, UPS APC CS500, МФУ Canon MP800, Cooler CoolerMaster (CM) V8, Процессор AMD Phenom II 945
|
Расскажи как, думаю людям будет интересно
--------------------
Вот. Винда проставилась. И даже уже BSOD выдала. Значит, работает! На всякий случай, воспользуйтесь поиском
|
|
|
|
|
clipsa |
Пятница, 29 Февраля 2008, 15:07
|
Участник
Профиль
Группа: Участник
Сообщений: 6
Регистрация: 08.11.2007
Пользователь №: 18827
Конфигурация
Корпус: -- Процессор: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: -- CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
Sub rtf_new() ' ' rtf_new Макрос ' Макрос записан 27.02.2008 (Rommi) ' ' Сочетание клавиш: Ctrl+e ' For i = 1 To 1000 If ActiveWorkbook.Worksheets(1).Rows(i).Cells(1).Value <> 0 Then ActiveWorkbook.Worksheets(2).Rows(i).Cells(1) = ActiveWorkbook.Worksheets(1).Rows(i).Cells(1) Else GoTo label1 If ActiveWorkbook.Worksheets(1).Rows(i).Cells(2).Value = 0 Then GoTo label1 ActiveWorkbook.Worksheets(2).Rows(i).Cells(2) = ActiveWorkbook.Worksheets(1).Rows(i).Cells(2) & ActiveWorkbook.Worksheets(1).Rows(i + 1).Cells(2) label1: Next i Rem убираем пустые строки j = 1 Do While j < 1001 If ActiveWorkbook.Worksheets(2).Rows(j).Cells(2).Value = 0 And ActiveWorkbook.Worksheets(2).Rows(j).Cells(1).Value = 0 Then ActiveWorkbook.Worksheets(2).Rows(j).Delete Shift:=xlUp j = j + 1 Loop End Sub
|
|
|
|
|
|
1 чел. читают эту тему (1 Гостей и 0 Скрытых Пользователей)
|
0 Пользователей:
|
|
© Copyright by WinCity.Ru 2001 - 2008 | Обратная связьУслуги веб-хостинга предоставлены компанией MTW.RU
|
|