С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.86/21: Рейтинг темы: голосов - 21, средняя оценка - 4.86
 Аватар для Yorksik
31 / 50 / 2
Регистрация: 10.12.2011
Сообщений: 383

Как вызывать окно (Excel) Сохранить из VB6

24.05.2013, 00:36. Показов 4178. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, есть ли компонент который бы вызывал окно которое вызывается при нажатии сохранить
 Комментарий модератора 
Для нового вопроса создавайте новую тему.


Добавлено через 2 часа 32 минуты
ребят как сохранить то)))???
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.05.2013, 00:36
Ответы с готовыми решениями:

как у маркера в google map вызывать модальное окно
Ребята, всем привет. Нужна ваша помощь. У меня есть google карта, на которой в соответствии с постами в WP отображаются маркеры. Мне нужно...

Как вызывать свое окно свойств ярлыка программы
Доброго времени суток. Если щелкнуть правой кнопкой мыши по ярлыку FAR'а и выбрать пункт "Свойства", то появится окно, отличное...

Как в VB вызывать модуль содержащийся в макросе книги Excel?
Необходимо в VB вызывать модуль содержащийся в макросе книги Excel.

26
 Аватар для Yorksik
31 / 50 / 2
Регистрация: 10.12.2011
Сообщений: 383
24.05.2013, 01:43  [ТС]
Ребята посмотрите пожалуйста проект
Возникло несколько вопросов
каким образом сделать форматирование выходного файла наиболее похожим на данный "КП"
И как собственно сохранить файл через CommonDialog
Вложения
Тип файла: zip прога.zip (5.2 Кб, 20 просмотров)
Тип файла: xlsx КП.xlsx (20.2 Кб, 19 просмотров)
0
 Аватар для Yorksik
31 / 50 / 2
Регистрация: 10.12.2011
Сообщений: 383
24.05.2013, 02:23  [ТС]
И если знаете средства с помощью которых можно реализовать график ( в файле "КП" )в VB
подскажите названия и литературу)
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
24.05.2013, 08:01
Лучший ответ Сообщение было отмечено The trick как решение

Решение

есть ли компонент который бы вызывал окно которое вызывается при нажатии сохранить
Visual Basic
1
xlApp.Dialogs(xlDialogSaveAs).Show
Добавлено через 8 минут
Или так:
Visual Basic
1
2
das = xlApp.GetSaveAsFilename
xlSheet.SaveAs das
2
 Аватар для Yorksik
31 / 50 / 2
Регистрация: 10.12.2011
Сообщений: 383
24.05.2013, 08:36  [ТС]
Alex77755, можно сделать чтоб окно вызываемое
xlApp.Dialogs(xlDialogSaveAs).Show
было в фокусе?
Ибо оно видно и открывается только из диспечера задач
0
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
24.05.2013, 09:03
Может быть этого не хватает -
Visual Basic
1
xlApp.visible=true
0
 Аватар для Yorksik
31 / 50 / 2
Регистрация: 10.12.2011
Сообщений: 383
24.05.2013, 09:15  [ТС]
Апострофф, этот вариант у меня был один из первых)
xlApp.visible=true делает окно excel видимым, но не диалог его сохранения
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
24.05.2013, 09:19
средства с помощью которых можно реализовать график
Являются средства самого ексел. Самое простое записать макрос создания нужной диаграммы. Полученный код с малыми доработками можно использовать и в бейсике. Обычно хватает привязки к объекту xlApp и назначения констант ексела

Добавлено через 1 минуту
На счёт видимости - у меня проблем нет! Диалог виден. Файл сохраняется под нужным именем (второй вариант)
0
 Аватар для Yorksik
31 / 50 / 2
Регистрация: 10.12.2011
Сообщений: 383
24.05.2013, 09:27  [ТС]
Alex77755, при скомпилированном проекте скрин
Миниатюры
Как вызывать окно (Excel) Сохранить из VB6  
0
 Аватар для Yorksik
31 / 50 / 2
Регистрация: 10.12.2011
Сообщений: 383
24.05.2013, 09:32  [ТС]
Alex77755, в среде диалога вообще нет

Добавлено через 1 минуту
кстати что касается открытия из excel подскажешь функцию
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
24.05.2013, 09:47
Диалог в екселе должен быть.
Единственное что может не вязаться версия ексел. У меня по умолчанию 2003.
В версиях выше вполне возможны другие названия диалогов, так как контролы все переименованы. Не удивлюсь, что и диалоги так же переименованы.
Поэтому и сохранение будет сильно отличаться от версии офиса
П второму вопросу: открытия чего? файла? Open
0
 Аватар для Yorksik
31 / 50 / 2
Регистрация: 10.12.2011
Сообщений: 383
24.05.2013, 09:49  [ТС]
у меня и 2003 и 2010 но по умолчанию 2003
теперь нужно открыть этот сохраненный файл

Добавлено через 52 секунды
и сделать наоборот
Visual Basic
1
2
3
4
5
For i% = 1 To 4
 For j% = 1 To 5
    xlSheet.Cells(i% + 3, j + 1).Value = Znach(FlxGrdDemo, i%, j% - 0)
 Next j%
Next i%
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
24.05.2013, 09:55
У бесика с екселом плохая стыковка в части закрытия приложения.
Очень часто не срабатывает xlApp.Quit. В результате в диспетчере задач болтается по несколько штук EXEL.exe
даже если освобождаешь переменную
Visual Basic
1
2
xlApp.Quit
Set xlApp = Nothing
Добавлено через 59 секунд
Visual Basic
1
2
3
Set Ex = CreateObject("Excel.Application")
Ex.Workbooks.Open App.Path & "\x.xls"
Ex.Visible = True
1
 Аватар для Yorksik
31 / 50 / 2
Регистрация: 10.12.2011
Сообщений: 383
24.05.2013, 10:04  [ТС]
Alex77755, хотелось бы не App.Path & "\x.xls", а через CommonDialog

Добавлено через 5 минут
с открытием полегче

Visual Basic
1
2
3
4
5
CommonDialog2.ShowOpen
 fName = CommonDialog2.FileName
 Set Ex = CreateObject("Excel.Application")
Ex.Workbooks.Open fName
Ex.Visible = True
Добавлено через 34 секунды
не подскажешь как перемещаться между имеющимися листами
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
24.05.2013, 10:10
Visual Basic
1
2
3
4
5
6
7
With CommonDialog1
    .CancelError = True
    .InitDir = "C:\My Documents"
    .Filter = "Excel файлы (*.xls)|*.xls|"
    .Action = 1
End With
If CommonDialog1.FileName <> "" Then
Добавлено через 3 минуты
Перебрать все листы:
Visual Basic
1
For Each q In EX.ActiveWorkbook.Worksheets
Добавлено через 1 минуту
Перейти на 2 по счёту слева
Visual Basic
1
EX.ActiveWorkbook.Worksheets(2).Select
Добавлено через 40 секунд
Перейти на лист "Вася"
Visual Basic
1
EX.ActiveWorkbook.Worksheets("Вася").Select
1
 Аватар для Yorksik
31 / 50 / 2
Регистрация: 10.12.2011
Сообщений: 383
24.05.2013, 10:11  [ТС]
Alex77755, спасибо))
пойду править)
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
24.05.2013, 10:12
Присвоить значение на любом (видимом) листе без активации листа
Visual Basic
1
EX.ActiveWorkbook.Worksheets("Вася").Range("C5")="Пример"
0
 Аватар для Yorksik
31 / 50 / 2
Регистрация: 10.12.2011
Сообщений: 383
24.05.2013, 16:23  [ТС]
Цитата Сообщение от Alex77755 Посмотреть сообщение
Присвоить значение на любом (видимом) листе без активации листа
Код Visual Basic
1
EX.ActiveWorkbook.Worksheets("Вася").Ran ge("C5")="Пример"
а на оборот можно?
какому нить text.text = EX.ActiveWorkbook.Worksheets("Вася").Ran ge("C5")

Добавлено через 9 минут
последний вопрос исчерпан

Добавлено через 5 минут
Alex77755, актуальным остается график по данным excel
подкинь пожалуйста литературы,
первый раз с таким сталкиваюсь

Добавлено через 5 часов 37 минут
актуальным остается график по данным excel
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
24.05.2013, 21:15
Блин. набросал пример и вырубили свет. Всё пропало. вот только сейчас дали.
А готовый пример не могу найти. надо всё снова составлять

Добавлено через 58 минут
актуальным остается график по данным excel
Не поверишь, но даже без переделки макрос вставил в программу и всё работает:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Private Sub Комманда1_Click()
Dim Ex As Excel.Application
Dim SH As Worksheet
 Set Ex = CreateObject("Excel.Application")
Ex.Workbooks.Add
Ex.Visible = True
Set SH = Ex.ActiveWorkbook.Worksheets(1)
 
With SH
    .Range("B2") = "-5"
    .Range("B3").FormulaR1C1 = "=R[-1]C+0.05"
    .Range("B3").AutoFill Destination:=Range("B3:B207"), Type:=xlFillDefault
    .Range("C2").FormulaR1C1 = "=RC[-1]^2"
    .Range("C2").AutoFill Destination:=Range("C2:C202"), Type:=xlFillDefault
 
    Charts.Add
    ActiveChart.ChartType = xlXYScatterSmoothNoMarkers
    ActiveChart.SetSourceData Source:=Sheets("Лист1").Range("B2:C202"), PlotBy:=xlColumns
    ActiveChart.Location Where:=xlLocationAsObject, Name:="Лист1"
            With ActiveChart
                .HasTitle = True
                .ChartTitle.Characters.Text = "График"
                .Axes(xlCategory, xlPrimary).HasTitle = True
                .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "X"
                .Axes(xlValue, xlPrimary).HasTitle = True
                .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Y"
            End With
    End With
End Sub
Добавлено через 10 минут
Ну или если не назначать таблицу источником данных, то можно создать нужный ряд, указав диапазоны:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Private Sub Комманда1_Click()
Dim Ex As Excel.Application
Dim SH As Worksheet
 Set Ex = CreateObject("Excel.Application")
Ex.Workbooks.Add
Ex.Visible = True
Set SH = Ex.ActiveWorkbook.Worksheets(1)
With SH
    .Range("B2") = "-5"
    .Range("B3").FormulaR1C1 = "=R[-1]C+0.05"
    .Range("B3").AutoFill Destination:=Range("B3:B207"), Type:=xlFillDefault
    .Range("C2").FormulaR1C1 = "=RC[-1]^2"
    .Range("C2").AutoFill Destination:=Range("C2:C202"), Type:=xlFillDefault
 
    Charts.Add
    ActiveChart.ChartType = xlXYScatterSmoothNoMarkers
'    ActiveChart.SetSourceData Source:=Sheets("Лист1").Range("B2:C202"), PlotBy:=xlColumns
    ActiveChart.Location Where:=xlLocationAsObject, Name:="Лист1"
            With ActiveChart
                .ChartArea.Select
                .SeriesCollection.NewSeries
                .SeriesCollection(1).XValues = "=Лист1!R22C2:R182C2"
                .SeriesCollection(1).Values = "=Лист1!R22C3:R182C3"
                .SeriesCollection(1).Name = "=""Парабола"""
                .HasTitle = True
                .ChartTitle.Characters.Text = "График"
                .Axes(xlCategory, xlPrimary).HasTitle = True
                .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "X"
                .Axes(xlValue, xlPrimary).HasTitle = True
                .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Y"
            End With
    End With
End Sub
1
 Аватар для Yorksik
31 / 50 / 2
Регистрация: 10.12.2011
Сообщений: 383
25.05.2013, 11:09  [ТС]
Alex77755, спасибо сейчас поэксперементирую)

Добавлено через 4 минуты
какой компонент нужно влепить на форму?

Добавлено через 5 минут
MSChar

Добавлено через 8 минут
Alex77755, как я понял код строит график по данным из excel или без них в самом excel.
есть ли средства отобразить этот график на форме приложения?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.05.2013, 11:09
Помогаю со студенческими работами здесь

Как сделать скриншот экрана с помощью программы на vb6 и сохранить его в файл?
Как сдлать скриншот экрана с помощью программы на ВБ 6 и сохранить его в файл

Как связать Excel-макрос и VB6?
Доброго времени суток, господа! Попробовал обратиться в VB раздел - порекоммендовали попробовать еще и здесь... Возникла небольшая...

Как при нажатии кнопки "сохранить" выдать окно с выбором места сохранения и сохранить текст, написанный в ТекстБокс, в формате .doc(x)
Уважаемы дамы и господа! Требуется чтоб при нажатии кнопки &quot;сохранить&quot; программа выводила окно с выбором места сохранения и сохраняла...

Как из VB6 менять цвет заливки ячейки в Excel'е
Помогите кто чем может, плз!!! Желательно пример...

Как с vb6 экспортировать переменные по порядку в строки excel?
Здравствуйте, подскажите, пожалуйста, как сделать, чтобы при нажатии Command записывались по порядку переменные в Excel файл в определенные...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru