|
|
|
запомнить значение ячейки другой книги
|
|||
|---|---|---|---|
|
#18+
Вопрос по VBA Надо открыть книгу2 Excel из другой книги1 . Потом в открывшейся книге2 стать курсором (вручную) на любую ячейку, запомнить её значение (например оно "111"). Закрыть (вручную) книгу2, и оказавшись в книге1 получить значение "111". Пытаюсь Sub Кнопка3_Щелкнуть() Set Excel1 = CreateObject("Excel.Application") Excel1.Visible = True Excel1.Workbooks.Open "d:\отчёт.xls" bb = Excel1.ActiveCell.Value ' (***) end sub на строке (***) ошибка как всё-таки получить значение другой книги? спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2008, 12:49 |
|
||
|
запомнить значение ячейки другой книги
|
|||
|---|---|---|---|
|
#18+
bb = Excel1.activeSheet.ActiveCell.Value ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2008, 12:50 |
|
||
|
запомнить значение ячейки другой книги
|
|||
|---|---|---|---|
|
#18+
Grayscalebb = Excel1.activeSheet.ActiveCell.Value ошибка ... нет такого метода :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2008, 12:53 |
|
||
|
запомнить значение ячейки другой книги
|
|||
|---|---|---|---|
|
#18+
Ну посмотрите там как его зовут в любом случае нужно обращатся к ячейке через книга-лист-ячейка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2008, 13:28 |
|
||
|
запомнить значение ячейки другой книги
|
|||
|---|---|---|---|
|
#18+
GrayscaleНу посмотрите там как его зовут в любом случае нужно обращатся к ячейке через книга-лист-ячейка вот я и не знаю "как его зовут", пробую разные варианты - не получается, вот и прошу помочь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2008, 13:57 |
|
||
|
запомнить значение ячейки другой книги
|
|||
|---|---|---|---|
|
#18+
Сейчас посмотрю.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2008, 14:06 |
|
||
|
запомнить значение ячейки другой книги
|
|||
|---|---|---|---|
|
#18+
Вообще как раз правильно оказалось activeCell а что за ошибка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2008, 14:11 |
|
||
|
запомнить значение ячейки другой книги
|
|||
|---|---|---|---|
|
#18+
Можно использовать так же excel.application ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2008, 14:12 |
|
||
|
запомнить значение ячейки другой книги
|
|||
|---|---|---|---|
|
#18+
не application а selection конечно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2008, 14:13 |
|
||
|
запомнить значение ячейки другой книги
|
|||
|---|---|---|---|
|
#18+
GrayscaleВообще как раз правильно оказалось activeCell а что за ошибка? Sub Кнопка3_Щелкнуть() Set Excel1 = CreateObject("Excel.Application") Excel1.Visible = True Excel1.Workbooks.Open "d:\отчёт.xls" bb = Excel1.ActiveCell.Value MsgBox bb Set Excel1 = Nothing End Sub ошибка в том, что MsgBox bb показывает всегда одно и то же значение ячейки открывшейся книги, после её закрытия, несмотря на то, что в открывшейся книге я стою в разных ячейках, оно должно менятся , а не меняется :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2008, 14:26 |
|
||
|
запомнить значение ячейки другой книги
|
|||
|---|---|---|---|
|
#18+
Опишите подробно пожалуйста не очень понятно.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2008, 15:46 |
|
||
|
запомнить значение ячейки другой книги
|
|||
|---|---|---|---|
|
#18+
Gray...Опишите подробно пожалуйста не очень понятно.. Описываю ... - Есть книга1 с кнопкой1 и книга2 - нажимаем кнопку1 - открывается книга2 - в этой книге2 ставим курсор на любую ячейку (для примера значение у этой ячейки "Отличное настроение" ...) - закрываем книга2, оказываемся в книга1 - вот теперь надо вывести=получить=узнать это значение "Отличное настроение" ... потом повторяем это ещё раз, нажимаем кнопку1 ... и тд ставим курсор в книга2 например на ячейку со значением "Отличная погода" ... закрываем книга2, оказываемся в книга1 ожидаемый результат ...получить значение "Отличная погода", та как курсор стоял на этом значении, а получаем опять "Отличное настроение". Помогите получить правильный результат. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2008, 16:09 |
|
||
|
запомнить значение ячейки другой книги
|
|||
|---|---|---|---|
|
#18+
Если вы закрываете книгу, а потом пытаетесь получить значение из ее ячейки - то вряд-ли у вас что-то получится... В книге2 должен быть код передающий значение из activecell перед закрытием книге1 - сохраняющее в какую-либо ячейку (возможно в экселе есть глобальные переменные на уровне приложения я не в курсе). Разве что так... в любом случае получить значение из ячейки после закрытия книги-невозможно... а если и возможно то, только определенной но никак не activeCell ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2008, 17:17 |
|
||
|
запомнить значение ячейки другой книги
|
|||
|---|---|---|---|
|
#18+
Помогите начинающему в Exel. 1 В строках А1, В1, С1 и т.д.меняются числа, при изменении хотя бы одной ячейки надо перезаписывать ячейки А1, В1, С1 и т.д (всю строку) в строки с последующим порядковым номером т.е. А2, А3. А4, А5 и т.д. В команду Range ("A2") не могу вставить переменную цикла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2008, 19:54 |
|
||
|
запомнить значение ячейки другой книги
|
|||
|---|---|---|---|
|
#18+
Аркадий ДроздовВ команду Range ("A2") не могу вставить переменную цикла. (Почти завидует, хотя больше удивляется.) И где только люди такую траву достают... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2008, 23:28 |
|
||
|
запомнить значение ячейки другой книги
|
|||
|---|---|---|---|
|
#18+
Лучше бы не острили , а помогли человеку слабо ризбирающемуся в программировании. Вопрос по которому прозвучала шутка надеюсь понятен или чтото объяснить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2008, 16:38 |
|
||
|
запомнить значение ячейки другой книги
|
|||
|---|---|---|---|
|
#18+
> Автор: Аркадий Дроздов > Лучше бы не острили , а помогли человеку слабо ризбирающемуся в программировании. > Вопрос по которому прозвучала шутка надеюсь понятен или чтото объяснить. По-первых: Все когда-то начинали! Во-вторых: За время потраченое на ожидание "у моря погоды", можно было поискать примеры и почитать справку З.Ы. 1 - Range("A" & CStr(i)) 2 - ActiveSheet.Cells(i, 1) Сильно помогло? З.З.Ы. Трава действительно, забористая -- С уважением Горбонос Игорь Леонидович Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2008, 16:58 |
|
||
|
запомнить значение ячейки другой книги
|
|||
|---|---|---|---|
|
#18+
Игорь Леонидович Спасибо огромное за Ваш ответ. Мне действительно это помогло. А как можно отследить изменения в строке хотя бы в одной ячейке? P.S. Я работаю конструктором, а не программистом. В прошлом на любительском уровне изучал С++. Сейчас требуется написать посути макрос для Экселя, и для этого изучать бескрайние просторы визуал бейсика не очень хочется (да и времени нет). А насчет травки не знаю, не знаю, на меня кофе в больших количествах действует не хуже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2008, 18:18 |
|
||
|
запомнить значение ячейки другой книги
|
|||
|---|---|---|---|
|
#18+
> Автор: Аркадий Дроздов > А как можно отследить изменения в строке хотя бы в одной ячейке? У листа есть событие изменения Private Sub Worksheet_SelectionChange(ByVal Target As Range) вот в нем и проверять -- С уважением Горбонос Игорь Леонидович Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2008, 18:54 |
|
||
|
запомнить значение ячейки другой книги
|
|||
|---|---|---|---|
|
#18+
Игорь ГорбоносRange("A" & CStr(i))При всём уважении к человеку, явно воспитанному не на Васике, а на приличных языках программирования: CStr выдаёт ЛОКАЛИЗОВАННЫЙ вариант. В данном случае, поскольку i, будем надеяться, as long, это почти несущественно (почти - потому что CStr может напихать разделители разрядов). Работать (вспомним, что мы в Васике) будет "A" & i или уж, если захочется поакадемичнее, "A" & LTrim(Str(i)) Игорь Горбонос > Автор: Аркадий Дроздов > А как можно отследить изменения в строке хотя бы в одной ячейке? У листа есть событие изменения Private Sub Worksheet_SelectionChange(ByVal Target As Range) вот в нем и проверять Ин май вери-вери хамбл опиньон: не в нём, а в Private Sub Worksheet_ Change ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2008, 21:36 |
|
||
|
запомнить значение ячейки другой книги
|
|||
|---|---|---|---|
|
#18+
ДмиДмиCStr выдаёт ЛОКАЛИЗОВАННЫЙ вариант. Локализованный имеется в виду это: Справка по VBAA string containing a date in the short date format of your system ДмиДмиИн май вери-вери хамбл опиньон: не в нём, а в Private Sub Worksheet_Change Согласен, поторопился ;) -- С уважением Горбонос Игорь Леонидович Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2008, 10:20 |
|
||
|
запомнить значение ячейки другой книги
|
|||
|---|---|---|---|
|
#18+
Спасибо ДмиДми за понимание. И если не затруднит выкинте полный тест проверки изменения строки (хотя бы в одной ячейке) на основе Private Sub Worksheet_ Change [/quot]. Визуал бейсик мен мучает с синтаксисом. Заранее благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2008, 10:24 |
|
||
|
запомнить значение ячейки другой книги
|
|||
|---|---|---|---|
|
#18+
Я все понимаю, сами когда-то начинали... Но скажите мне, уважаемый Аркадий, почему всегда нужно делать через ...., и описывать, _что_ нужно, не говоря ни слова, _зачем_ нужно? Из описания я понял только, что Вы имеете некую таблицу с данными, изменяете данные в первой строке и желаете, чтобы строка с этими измененными данными переместилась в таблицу (оставшись, естественно, и на первом месте). Так вопросы-то возникают сразу, например, данные переносить, сдвигая таблицу (т.е. из первой строки во вторую), или в конец таблицы можно дописать, зачем вообще таблица на одном листе - нельзя ли иметь отдельно строку ввода и таблицу данных, зачем вообще workshhet_change, если можно сделать кнопки с действиями или сконструировать форму ввода, и, соответственно, реализация при этом может отличаться существенно... Чтобы вышенаписанное не казалось бредом, задам прямой вопрос: А почему нельзя новые данные дописывать _в конец_ существующей таблицы? (тогда вообще никакого программирования не нужно...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2008, 21:15 |
|
||
|
запомнить значение ячейки другой книги
|
|||
|---|---|---|---|
|
#18+
Наверное Вы правы. Поясню. Есть таблица в первой строке написаны наименование товара, во второй строке кол-во товара ( оно меняется в режиме реального времени). Поэтому надо фиксировать изменение хотя бы одной позиции товара и прописывать все значения второй строки в новую пустую строку в 3, 4 , 5 , и т.д.(до конца рабочего дня) Поясню для чего это нужно. Некоторый товар покупается совместно с другим . Вот и надо отслеживать что с чем покупалось и в каких пропорциях. Ктото чтото купил пошла запись в новую строку, прошла следующая покупка сделана соответствующая запись в новую строку.В конце дня анализируем что с чем покупалось и формируем склад с учетом потребностей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2008, 09:03 |
|
||
|
запомнить значение ячейки другой книги
|
|||
|---|---|---|---|
|
#18+
Ребята помогли написать код. Но он работает только когда набиваешь изменения с клавы. У нас изменения в ячейках происходит по протоколу DDE и Excel при таком коде эти изменения не чувствует. Помогите откорректировать. Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub If Target.Row = 2 Then Dim iLastRow As Long iLastRow = Cells(Rows.Count, 1).End(xlUp).Row + 1 If iLastRow < 5 Then iLastRow = 5 Range("A2:BC2").Copy Destination:=Range("A" & iLastRow) End If End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2008, 10:49 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=35406497&tid=2161885]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
181ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
84ms |
get tp. blocked users: |
2ms |
| others: | 237ms |
| total: | 552ms |

| 0 / 0 |
