powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / [VBA + Excel 2003] Експорт региона...
16 сообщений из 16, страница 1 из 1
[VBA + Excel 2003] Експорт региона...
    #34649876
soljen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго временни суток, дамы и господа!

Есть Excel, много листов.
Необходимо:
1. С листа "ИмяЛиста1" выделить регион "Ячейка1"-"Ячейка2"
(имена задаются параметрами)
2. Скопировать данные (не формулы, а данные) из этого региона
3. Перейти на другой лист "ИмяЛиста2" и вставить; причём вставить в конец листа, сразу после того что там уже есть.
4. В идеале оформить это в виде макроса ...

Возникло несколько проблем:
1. Когда записываю макрос, то у меня в буфер копируются не расчитанные данные, а формулы :( при условии вставки на другой лист, если же копирую в текстовый файл - то всё хорошо...
2. В ТЗ сказано что нужно регион експортировать в текстовые файлы, которые должны создаваться тоже екслем... Это вообще не могу догнать как :(

Заранее спасибо за помошь!
...
Рейтинг: 0 / 0
[VBA + Excel 2003] Експорт региона...
    #34650052
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Попробуй записать специальную вставку - значения. это в меню правка или контекстном меню.
Либо Range1.Value = Range2.Value

2) Попробуй записать Файл - сохранить как - выбери текстовый файл.
...
Рейтинг: 0 / 0
[VBA + Excel 2003] Експорт региона...
    #34650271
soljen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток, Deggasad! Спасибо за отклик!

Deggasad2) Попробуй записать Файл - сохранить как - выбери текстовый файл.Собственно нужно експортировать выделенный регион в текстовый файл... но как? Сохранить как пытается сохранить всю книгу... а тект не поддерживает когщда много листов :(

Deggasad1) Попробуй записать специальную вставку - значения. это в меню правка или контекстном меню.
Либо Range1.Value = Range2.Value Range("L738:P754").Select имеет тип Variant/Variant (1 to 17, 1 to 5) - т.е. это таблица
В переменную типа Object не лезит! В variant - <Expression not defined on context>
:(
Нифига не доганяю...

Спасибо!
...
Рейтинг: 0 / 0
[VBA + Excel 2003] Експорт региона...
    #34650930
soljen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Делаю так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Sub SelectRange()
    Dim v As Variant
    Dim n As Integer

    Sheets("SH1").Select
    Range("L738:P754").Select
    v = Range("L738:P754").Value

    Sheets("SH2").Select
    n = Worksheets("Generator").Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row
    Worksheets("Generator").Cells(n +  1 ,  1 ).Select
    ActiveSheet.Paste
End Sub
в ячейку Cells(n + 1, 1) вставляется строка "ActiveSheet.Paste"

Кто подстакажет почему?

Спасибо!
...
Рейтинг: 0 / 0
[VBA + Excel 2003] Експорт региона...
    #34650986
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так попробуй, только последняя ячейка ищется в первом столбце, устроит?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Sub SelectRange()
    Dim v As Range
    Dim n As Range

    Sheets("SH1").Select
    Range("L738:P754").Select
    v = Range("L738:P754")

    Sheets("SH2").Select
    n = Worksheets("Generator").Column( 1 ).Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Offset( 1 )

    n.resize(v.rows.count,v.columns.count).value = v.value
    
End Sub
...
Рейтинг: 0 / 0
[VBA + Excel 2003] Експорт региона...
    #34651069
soljen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, но немного не работает :(\
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
    Sheets("CDS_SCHEMA").Select
    Range("L738:P754").Select
    v = Range("L738:P754").Value

    Sheets("Generator").Select
    n = Worksheets("Generator").Column( [b]1 ).[/b]Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Offset( 1 )

    n.Resize(v.Rows.Count, v.Columns.Count).Value = v.Value
На выделенное место ругается... не подерживает такое свойство или метод... :(
...
Рейтинг: 0 / 0
[VBA + Excel 2003] Експорт региона...
    #34651357
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во-превых, переменные Range должны быть.
Код: plaintext
1.
    Dim v As Range
    Dim n As Range
Во-вторых,
Вместо
Код: plaintext
v = Range("L738:P754").Value
Нужно
Код: plaintext
Set v = Range("L738:P754")
...
Рейтинг: 0 / 0
[VBA + Excel 2003] Експорт региона...
    #34651390
soljen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Абсолютно ни на что не влияем :(
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Sub SelectRange()
    Dim v As Range
    Dim n As Range

    Sheets("CDS_SCHEMA").Select
    Range("L738:P754").Select
    Set v = Range("L738:P754")

    Sheets("Generator").Select
    n = Worksheets("Generator").Column( 1 ).Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Offset( 1 )
    n.Resize(v.Rows.Count, v.Columns.Count).Value = v.Value
End Sub
Column(1) - не поддерживает!
...
Рейтинг: 0 / 0
[VBA + Excel 2003] Експорт региона...
    #34651402
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
soljenАбсолютно ни на что не влияем :(
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Sub SelectRange()
    Dim v As Range
    Dim n As Range

    Sheets("CDS_SCHEMA").Select
    Range("L738:P754").Select
    Set v = Range("L738:P754")

    Sheets("Generator").Select
    n = Worksheets("Generator").Column( 1 ).Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Offset( 1 )
    n.Resize(v.Rows.Count, v.Columns.Count).Value = v.Value
End Sub
Column(1) - не поддерживает!

Пардон
Код: plaintext
Columns( 1 )
...
Рейтинг: 0 / 0
[VBA + Excel 2003] Експорт региона...
    #34651445
soljen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот рабочий кусок кода:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Sub SelectRange()
    Dim v As Range
    Dim n As Range

    Sheets("CDS_SCHEMA").Select
    Range("L738:P754").Select
    Set v = Range("L738:P754")

    Sheets("Generator").Select
    Set n = Worksheets("Generator").Columns.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Offset( 1 )
    n.Resize(v.Rows.Count, v.Columns.Count).Value = v.Value
End Sub
...
Рейтинг: 0 / 0
[VBA + Excel 2003] Експорт региона...
    #34651455
soljen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Один вопрос вроде решился... как скопировать и вставить...

Второй: как создать текстовый файл в той же директории, предварительно спросив какое будет его имя, разрешение известно (*.txt), и вставить туда этот скопированный в буфер кусок!
...
Рейтинг: 0 / 0
[VBA + Excel 2003] Експорт региона...
    #34662533
soljen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток, дамы и господа!

Делаю вот так:
Код: plaintext
1.
2.
3.
4.
5.
    ' create file
    Dim fso, fResultFile
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set fResultFile = fso.CreateTextFile("test.txt", True) ' *.sql
    fResultFile.Close
Но файл не создаётся в текущем каталоге, но и ошибками не бровается...
...
Рейтинг: 0 / 0
[VBA + Excel 2003] Експорт региона...
    #34662582
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
soljenНо файл не создаётся в текущем каталоге, но и ошибками не бровается...Неправда. Именно в текущем каталоге он и создается. Другое дело что текущий каталог принадлежит процессу, а ты уверен что знаешь какой процесс твой код выполняет? А ты знаешь какой каталог этот процесс объявил текущим?
Добавь к своему коду пару строчек:
Код: plaintext
1.
    Set fResultFile = fso.GetFolder(".")
    MsgBox fResultFile.Path
Узнаешь какой же у тебя сейчас в реальности текущий каталог.
...
Рейтинг: 0 / 0
[VBA + Excel 2003] Експорт региона...
    #34663547
soljen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток, White Owl!
White Owl soljenНо файл не создаётся в текущем каталоге, но и ошибками не бровается...Неправда. Именно в текущем каталоге он и создается. Другое дело что текущий каталог принадлежит процессу, а ты уверен что знаешь какой процесс твой код выполняет? А ты знаешь какой каталог этот процесс объявил текущим?
Добавь к своему коду пару строчек:
Код: plaintext
1.
    Set fResultFile = fso.GetFolder(".")
    MsgBox fResultFile.Path
Узнаешь какой же у тебя сейчас в реальности текущий каталог.
Крайне странно :(
Создаёт как оказалось в Мои документы... но почему??? :(

Спасибо!
...
Рейтинг: 0 / 0
[VBA + Excel 2003] Експорт региона...
    #34665147
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
soljenКрайне странно :(
Создаёт как оказалось в Мои документы... но почему??? :(Ничего странного. Эксель по умолчанию устанавливает туда свой текущий каталог. Можешь пошарится по настройкам Экселя и найдешь.
...
Рейтинг: 0 / 0
[VBA + Excel 2003] Експорт региона...
    #34675856
valen24
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток, White Owl!

Прошу помогите с кодом!!!
Необходимо вставить в лист Excel 2003 элемент управления ComboBox1,
затем привязать его к ячейке таким образом, чтобы ComboBox1 активировался
тогда, когда я выделяю эту ячейку(т.е. щелкаю по ней, или подвожу
черную рамку активной ячейки...)...
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / [VBA + Excel 2003] Експорт региона...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]