Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 22.10.2010
Сообщений: 9

Re: ячейки из открытой книги?

25.10.2010, 17:53. Показов 1268. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Все хорошо открытая книга не мешает создать новый объект (посредством ADD), я имею возможность брать данные откуда захочу. Но это именно НОВЫЙ объект, поэтому все изменения которые я вношу прогой отражаются в НОВОМ объекте, но не в открытом. И, как я понимаю, мне все равно придется 1) закрывать открытый объект, 2) сохранять НОВЫЙ объект и 3) вновь открывать. Если проще то, прога отслеживает все изменения, но в открытом файле я их не вижу. Как из увидеть?
XPraptor - скорее всего ответ будет от тебя
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.10.2010, 17:53
Ответы с готовыми решениями:

Узнать имена всех листов открытой книги
Собственно, вопрос уже задан :) P.S.: В VB я не очень силен, поэтому прошу помочь разобраться :)

Создать процедуру, позволяющую третий столбец активного рабочего листа открытой рабочей книги Excel настраивать на формат значений типа дата
Помогите плиз, Создать процедуру, позволяющую третий столбец активного рабочего листа открытой рабочей книги Excel настраивать на формат...

Бэкап открытой книги Excel
Всем привет! Может кто мне подскажет, как с помощью ВБА сделать бэкап открытой книги эксель. у нас есть файл эксель, мы его открываем,...

9
0 / 0 / 0
Регистрация: 22.10.2010
Сообщений: 9
25.10.2010, 18:38  [ТС]
Нашел свою траблу: в коде присутствовала строка CreateObject('Excel.Application'), а надо было довольствоваться предшествующей ей CreateObject(,'Excel.Application').
Но от этого не легче - сейчас (при подключении к открытому екселю) идет запрос на открытие книги с потерей изменений. А мне ентого не нать.
Как побороть это, а именно подключиться к уже открытой книге без всяких вопросов?
0
2 / 2 / 1
Регистрация: 19.07.2007
Сообщений: 737
25.10.2010, 18:44
GetObject()
0
0 / 0 / 3
Регистрация: 28.01.2010
Сообщений: 279
25.10.2010, 18:45
Ну конечно же от меня ответ будет! Но ты такой хакер просто жуть!!!
Вот держи все по полочкам:
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
34
35
36
37
38
39
40
41
42
43
Option Explicit
 
Private Sub Command1_Click()
Dim AppExcel  As Object
Dim wBook  As Object
Dim wSheet As Object
Dim clVal&
Dim NewInstance As Boolean
    
'ЭТО ОТКРЫТЫЙ ТВОЙ ЭКСЕЛЬ СО ВСЕМИ ОТКРЫТЫМИ КНИГАМИ!
    Set AppExcel = GetObject(, 'Excel.Application')
    If AppExcel Is Nothing Then
        Set AppExcel = CreateObject('Excel.Application')
        If AppExcel Is Nothing Then
            MsgBox 'НЕТУ НА МАШИНЕ ЭКСЕЛЯ! ПРИКОЛИСТ!'
            Exit Sub
        Else
            NewInstance = True
        End If
    Else
        NewInstance = False
    End If
 
'ЭТО КНИГА КОТОРАЯ ОТКРЫТА! СОХРАНЯТЬ ЕЕ НЕ НУЖНО! ИМЯ БЕЗ ПУТИ!
Set wBook = AppExcel.Workbooks('DDD.xls')
'И ПОФИГ МОЖНО И ТАК НАПИСАТЬ:
'Set wBook = AppExcel.Workbooks.Item('DDD.xls')
'ЭТО ЛИСТ ПОД НОМЕРОМ ОДИН В ЭТОЙ КНИГЕ!
Set wSheet = wBook.Worksheets(1)
'ЭТО ЯЧЕЙКА 'A3'! СТРОКА '3' СТОЛБЕЦ '1'! КАК ТОЛЬКО ТЫ ЕЕ ИЗМЕНИЛ МОЖЕШЬ НЕ СОХРАНЯЯ КНИГИ
'ПОЛУЧИТЬ ЕЕ ЗНАЧЕНИЕ! clVal ЭТО ЗНАЧЕНИЕ КОТОРОЕ СЕЙЧАС В ЭТОЙ ЯЧЕЙКЕ!
clVal = wSheet.cells(3, 1).Value
'ЭТО МЕСАГAБОКС КОТОРЫЙ ПОКАЗЫВАЕТ ТЕБЕ КАКОЕ ЖЕ ЗНАЧЕНИЕ СЕЙЧАС В ЭТОЙ ЯЧЕЙКЕ 'A3'!!!
MsgBox 'A3=' & clVal
'ЭТО УНИЧТОЖЕНИЕ ВСЕХ ОБЪЕКТОВ ЧТОБЫ ПАМЯТЬ НЕ ЖРАЛИ И СИСТЕМУ НЕ УБИЛИ ПЕРЕГРУЗКОЙ!
Set wSheet = Nothing
Set wBook = Nothing
'ЭТО ЕСЛИ НЕ БЫЛ ПОЛУЧЕН ЭКСЕЛЬ ОТКРЫТЫЙ А СОЗДАЛСЯ НОВЫЙ ЭКЗЕМПЛЯР, ТО ОН ЗАКРЫВАЕТСЯ
'А ТАК ОН НЕ ВИДИМЫЙ И ОСТАНЕТСЯ В ПАМЯТИ!
If NewInstance = True Then AppExcel.Quit
'А ЭТО ПРОСТО УНИЧТОЖЕНИЕ ССЫЛКИ НА ОБЪЕКТ ЭКСЕЛЯ В ПАМЯТИ НО НЕ ЗАКРЫТИЕ САМОЙ ПРОГРАММЫ ЭКСЕЛЯ!
Set AppExcel = Nothing
End Sub
0
0 / 0 / 0
Регистрация: 22.10.2010
Сообщений: 9
26.10.2010, 17:32  [ТС]
Konst_one: конечно же GetObject(), а не CreateObject(это очепятка)

XPraptor:
отдельное Спасибо! вот как по полочкам - так сразу зарулило
конечно моя трабла была в 'ИМЯ БЕЗ ПУТИ!'
Попробую развить тему дальше
Разные файлы - разные столбцы. Пытаюсь определить из какого файла (имя) данный закачиваются в буфер. Пробую так:
hWndOver = GetActiveWindow()
R = GetWindowText(hWndOver, sWindowText, 100)
Но поскольку стоит блок на проверку сообщения буфера
If Msg = WM_DRAWCLIPBOARD Then
активным постоянно выдается наименование проги.
Привязываться к положению курсора мыши не актуально, поскольку покопировать и попутешествовать по окну можно и посредством клавы.
Что посоветуешь?
0
0 / 0 / 3
Регистрация: 28.01.2010
Сообщений: 279
26.10.2010, 17:52
Тут все просто, активная кника она и есть активная! Там где ты копируешь это и есть активная книга. К ней обращаться как:
'ЭТО ИМЯ АКТИВНОЙ КНИГИ ГДЕ СЕЧАС КОПИРУЕШЬ
ObExcel.ActiveWorkBook.Name
'А ЭТО ЗНАЧЕНИЕ ИЗ КАКОЙ НИТЬ ЯЧЕЙКИ АКТИВНОЙ КНИГИ
ObExcel.ActiveWorkBook.Sheets(1).Cells(r ow, col).value
0
0 / 0 / 0
Регистрация: 22.10.2010
Сообщений: 9
26.10.2010, 18:14  [ТС]
ну зачем так просто - это не интересно
# открыт ексель-файл-прайс-лист, копирую все замечательно,
но вот захотелось обратиться на сайт, копирнул там разок-другой (это кстати будет следующая тема для обсуждения: 'как заставить прогу взять данные из конкретных участков html'я') - при этом ObExcel.ActiveWorkBook.Name понятно будет 'ексель-файл-прайс-лист'.
Надоть чтоб при комбинации Ctrl-C прога получила конкретное имя:
'DealerMealer.xls' или же 'IE.exe - Суперпуперсайт'.
Эк оно как
0
0 / 0 / 3
Регистрация: 28.01.2010
Сообщений: 279
26.10.2010, 18:23
Слушай Nikl, давай мне на WebMoney 50 баков, и описание задачи, и я тебе сам мля всю прогу напишу! Ты хоть представление имеешь что WebBrowser твой IE уже никак не относится к твоей проге и чтобы с него перехватить нажатие клавиш нужно глобальный хук вешать в систему? У тебя должен быть свой бровзер на форме в котором ты страницы должен загружать и там в меню формы сочетание клавиш которое будет интерпритировано прогой как копирование выделенного в данный момент куска текста в текущем окне бровзера. Но для этого нужно месяца три изучать библиотеку IHTML Объекта и еще HTML знать желательно на высоком уровне. Так что думай, когда вопросы задаешь!
0
0 / 0 / 0
Регистрация: 22.10.2010
Сообщений: 9
26.10.2010, 18:45  [ТС]
XPraptor - я абсолютно не спорю, что я 'на халяву' (прошу прощения за выражение, обидеть никого не хочу) хочу получить поддержку при ваянии этой проги, как не спорю, что все, что обсуждается в форуме доступно для всех. Смайлик после 'объвления' новой темы говорит о том, что я прекрасно понимаю сложность задачи. Возможно эта прога навсегда останется прогой, а возможно она станет серьезной логистической программой. И также возможно, что я когда-нибуть спрошу номер твоего счета. Но уверяю тебя твое имя не будут забыто (без насмешки).
А сейчас я спросил именно про имя активного (в смысле обращения) приложения. Если не затруднит - жду ответ

P.S. Уважения ради объявлю автора кода обращения к буферу обмена:
'Clipboard Viewer
'Автор: Александр Бельбаков
'e-mail: vbmaster@mail.ru
0
0 / 0 / 3
Регистрация: 28.01.2010
Сообщений: 279
26.10.2010, 18:59
Ладно, проехали. Я тоже извеняюсь, просто погорячился, тут на работе проблеммы с сервером. То что смайлик в теме это конечно понятно, но из правил вежливости вопросы нужно задавать не по принципу - напишите мне пожалуйста программу, а по принципу как сделать чтобы..., а потом самому развиваться и искать описание функций и методов которые посоветуют.
Вот ты спрашиваешь как узнать активное приложение так для этого есть API функция GetActiveWindow она вернет тебе дескриптор окна, а зная дескриптор можно получить по нему заголовок и класс окна, а по заголовку и определить что за приложение сейчас активно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.10.2010, 18:59
Помогаю со студенческими работами здесь

Данные из другой открытой книги
Есть Книга1 (поля "наименование" и "цена") и Книга2, с идентичными полями. Необходимо в Книге2 сравнить сначала наименования с теми, что...

Считать значение из открытой книги
Доброго времени суток , помогите написать макрос на открытие файла экселя для того что бы взять значение из вновь открытого файла и...

Поиск открытой книги Excel Из Access
Помогите, пожалуйста, процедура, написанная Excele находит открытые книги, а в любом другом приложении, например Accese, не находит... ...

Экспорт функции из другой открытой книги
Нужна помощь.Есть две открытые книги. В 1ой написан макрос и функция. 2ая пустая, та книга, в которой нужно применить макрос из первой...

Обращение к ячейкам открытой книги (не текущей)
Макрос должен запускаться, спрашивать - какой файл ему взять. Открыть его, разделить определенную ячейку на 1000, сохранить файл. ...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Номеклатура. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru