вот нашел ПРИМЕР !!! кода - который возможно натолкнет на правильное решение :
[vba]
Код
Sub GetCellValues()
Dim iRow As Integer 'Хранит номер текущей строки Dim dCellValues() As Double 'Массив для хранения значений ячеек
iRow = 1 ReDim dCellValues(1 To 10)
'Цикл Do Until перебирает последовательно ячейки столбца A активного листа 'и извлекает их значения в массив до тех пор, пока не встретится пустая ячейка
Do Until IsEmpty(Cells(iRow, 1))
'Проверяем, что массив dCellValues имеет достаточный размер 'Если нет – увеличиваем размер массива на 10 при помощи ReDim If UBound(dCellValues) < iRow Then ReDim Preserve dCellValues(1 To iRow + 9) End If
'Сохраняем значение текущей ячейки в массиве dCellValues dCellValues(iRow) = Cells(iRow, 1).Value
iRow = iRow + 1 Loop
End Sub
[/vba]
нужно к нему прикрутить или СДЕЛАТЬ проще ( не знаю как )
Код который в примере :
Ищет пустую ячейку - нашел и передал её в массив.
дальше, нужно чтобы ждал появления в этой ( пустой ) ячейки данных - ( ЛЮБЫХ - из ВНЕ )
появились - АВТОПРОКРУТИЛ на одну строку вверх, и чтобы видно было предшествующие данные.
потом опять начал поиск ПУСТОЙ ячейки и опять ждал появления данных, появились - АВТОПРОКРУТИЛ на одну строку вверх
вот нашел ПРИМЕР !!! кода - который возможно натолкнет на правильное решение :
[vba]
Код
Sub GetCellValues()
Dim iRow As Integer 'Хранит номер текущей строки Dim dCellValues() As Double 'Массив для хранения значений ячеек
iRow = 1 ReDim dCellValues(1 To 10)
'Цикл Do Until перебирает последовательно ячейки столбца A активного листа 'и извлекает их значения в массив до тех пор, пока не встретится пустая ячейка
Do Until IsEmpty(Cells(iRow, 1))
'Проверяем, что массив dCellValues имеет достаточный размер 'Если нет – увеличиваем размер массива на 10 при помощи ReDim If UBound(dCellValues) < iRow Then ReDim Preserve dCellValues(1 To iRow + 9) End If
'Сохраняем значение текущей ячейки в массиве dCellValues dCellValues(iRow) = Cells(iRow, 1).Value
iRow = iRow + 1 Loop
End Sub
[/vba]
нужно к нему прикрутить или СДЕЛАТЬ проще ( не знаю как )
Код который в примере :
Ищет пустую ячейку - нашел и передал её в массив.
дальше, нужно чтобы ждал появления в этой ( пустой ) ячейки данных - ( ЛЮБЫХ - из ВНЕ )
появились - АВТОПРОКРУТИЛ на одну строку вверх, и чтобы видно было предшествующие данные.
потом опять начал поиск ПУСТОЙ ячейки и опять ждал появления данных, появились - АВТОПРОКРУТИЛ на одну строку вверх
и так в цикле.
По столбцу А !!!
Пожалуйста помогите осуществить эту задачу...serg1981
serg1981, а не кажется ли вам, что вы должны были это написать в своем первом посте? вместо того, чтобы писать код, которы вообще нафиг не упал... или вы считаете, что тут телепаты собрались и должны угадывать?
шлем по dde 2 команды [vba]
Код
'[select.special(11)]' '[select(, "RC1")]'
[/vba]
или пользуем Worksheet_Calculate, ибо Worksheet_Change не работает с DDE [vba]
Код
Private Sub Worksheet_Calculate() Worksheets(Me.Name).UsedRange Me.Cells.SpecialCells(11).EntireRow.Cells(, "A").Select End Sub
serg1981, а не кажется ли вам, что вы должны были это написать в своем первом посте? вместо того, чтобы писать код, которы вообще нафиг не упал... или вы считаете, что тут телепаты собрались и должны угадывать?
шлем по dde 2 команды [vba]
Код
'[select.special(11)]' '[select(, "RC1")]'
[/vba]
или пользуем Worksheet_Calculate, ибо Worksheet_Change не работает с DDE [vba]
Код
Private Sub Worksheet_Calculate() Worksheets(Me.Name).UsedRange Me.Cells.SpecialCells(11).EntireRow.Cells(, "A").Select End Sub
serg1981, На этот вопрос ответа нет. Если данные вставляете вручную, то события работать будут. Если вставка данных из другой программы, то события не будут работать. Прочтите темы [p.s.]не обратил внимание, что тема на нескольких листах. Прочел только первый лист.
serg1981, На этот вопрос ответа нет. Если данные вставляете вручную, то события работать будут. Если вставка данных из другой программы, то события не будут работать. Прочтите темы [p.s.]не обратил внимание, что тема на нескольких листах. Прочел только первый лист.AlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
Сообщение отредактировал AlexM - Воскресенье, 26.05.2019, 20:00
данные попадают в Excel через DDE сервер, с другой программы ( корректно поступают ) - подгружаются, появляются в ячейках данные - мгновенно...serg1981
С уважением Сергей-1981
Сообщение отредактировал serg1981 - Понедельник, 27.05.2019, 04:40
или пользуем Worksheet_Calculate, ибо Worksheet_Change не работает с DDE
Давайте решать задачу, тогда так :
На 1-й лист - поступают данные с DDE сервера - так ?
1-й лист - берем за основу... !
Ко второму листу пишем макрос - который, с 1-го листа дублирует данные и переносит на второй лист. ( МОЖНО НАПИСАТЬ ФОРМУЛУ И ПРОТЯНУТЬ ЕЕ ДО САМОГО НИЗА ( ДО ПОСЛЕДНЕЙ СТРОКИ ) - НО ЭТО - ФИГНЯ )
Получается 2-й лист идентичен с 1-м. ( Если макрос такой добавить, на второй лист. )
На второй лист уже данные поступают не с DDE сервера ( а с 1-го ЛИСТА ! ) - так ?
и ко второму листу ( ко 2-му ЛИСТУ, который дублирует с первого ! ) - можно применить эту логику ??? :
[vba]
Код
Sub GetCellValues()
Dim iRow As Integer 'Хранит номер текущей строки Dim dCellValues() As Double 'Массив для хранения значений ячеек
iRow = 1 ReDim dCellValues(1 To 10)
'Цикл Do Until перебирает последовательно ячейки столбца A активного листа 'и извлекает их значения в массив до тех пор, пока не встретится пустая ячейка
Do Until IsEmpty(Cells(iRow, 1))
'Проверяем, что массив dCellValues имеет достаточный размер 'Если нет – увеличиваем размер массива на 10 при помощи ReDim If UBound(dCellValues) < iRow Then ReDim Preserve dCellValues(1 To iRow + 9) End If
'Сохраняем значение текущей ячейки в массиве dCellValues dCellValues(iRow) = Cells(iRow, 1).Value
iRow = iRow + 1 Loop
[/vba]
Ищет пустую ячейку - нашел и передал её в массив.
дальше, нужно чтобы ждал появления в этой ( пустой ) ячейки данных - ( ЛЮБЫХ - из ВНЕ )
появились - АВТОПРОКРУТИЛ на одну строку вверх, и чтобы видно было предшествующие данные.
потом опять начал поиск ПУСТОЙ ячейки и опять ждал появления данных, появились - АВТОПРОКРУТИЛ на одну строку вверх
и так в цикле.
По столбцу А !!!
Можно так сделать ( со вторым ЛИСТОМ ! ) ???
ТЕПЕРЬ ДАННЫЕ ПОСТУПАЮТ С EXCEL - с первого листа на второй ( если подумать о вышеописанном ) !
или пользуем Worksheet_Calculate, ибо Worksheet_Change не работает с DDE
Давайте решать задачу, тогда так :
На 1-й лист - поступают данные с DDE сервера - так ?
1-й лист - берем за основу... !
Ко второму листу пишем макрос - который, с 1-го листа дублирует данные и переносит на второй лист. ( МОЖНО НАПИСАТЬ ФОРМУЛУ И ПРОТЯНУТЬ ЕЕ ДО САМОГО НИЗА ( ДО ПОСЛЕДНЕЙ СТРОКИ ) - НО ЭТО - ФИГНЯ )
Получается 2-й лист идентичен с 1-м. ( Если макрос такой добавить, на второй лист. )
На второй лист уже данные поступают не с DDE сервера ( а с 1-го ЛИСТА ! ) - так ?
и ко второму листу ( ко 2-му ЛИСТУ, который дублирует с первого ! ) - можно применить эту логику ??? :
[vba]
Код
Sub GetCellValues()
Dim iRow As Integer 'Хранит номер текущей строки Dim dCellValues() As Double 'Массив для хранения значений ячеек
iRow = 1 ReDim dCellValues(1 To 10)
'Цикл Do Until перебирает последовательно ячейки столбца A активного листа 'и извлекает их значения в массив до тех пор, пока не встретится пустая ячейка
Do Until IsEmpty(Cells(iRow, 1))
'Проверяем, что массив dCellValues имеет достаточный размер 'Если нет – увеличиваем размер массива на 10 при помощи ReDim If UBound(dCellValues) < iRow Then ReDim Preserve dCellValues(1 To iRow + 9) End If
'Сохраняем значение текущей ячейки в массиве dCellValues dCellValues(iRow) = Cells(iRow, 1).Value
iRow = iRow + 1 Loop
[/vba]
Ищет пустую ячейку - нашел и передал её в массив.
дальше, нужно чтобы ждал появления в этой ( пустой ) ячейки данных - ( ЛЮБЫХ - из ВНЕ )
появились - АВТОПРОКРУТИЛ на одну строку вверх, и чтобы видно было предшествующие данные.
потом опять начал поиск ПУСТОЙ ячейки и опять ждал появления данных, появились - АВТОПРОКРУТИЛ на одну строку вверх
и так в цикле.
По столбцу А !!!
Можно так сделать ( со вторым ЛИСТОМ ! ) ???
ТЕПЕРЬ ДАННЫЕ ПОСТУПАЮТ С EXCEL - с первого листа на второй ( если подумать о вышеописанном ) !
Так. Вы покажите пример файла. Структура таблиц как в реальном файле. Напишите в какой столбец по DDЕ поступают данные. Какая ячейка должна быть видна на экране. Рекомендации по наполнению вопроса информацией есть в правилах форума Без примера вы будете получать советы, которыми, к сожалению, воспользоваться не можете.
Так. Вы покажите пример файла. Структура таблиц как в реальном файле. Напишите в какой столбец по DDЕ поступают данные. Какая ячейка должна быть видна на экране. Рекомендации по наполнению вопроса информацией есть в правилах форума Без примера вы будете получать советы, которыми, к сожалению, воспользоваться не можете.AlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.