powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Последняя непустая ячейка
23 сообщений из 23, страница 1 из 1
Последняя непустая ячейка
    #34181240
Frost_Imp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго всем дня суток!
Очень нужен ответ на следующий вопрос... Опишу
Есть файл А, в нем таблица, в нее, скажем, в столбец В еженедельно вносятся данные. Таких файлов много. Есть другой файл Б, в нем общая таблица. Так вот, в файле Б, скажем, в ячейке А1 нужно отображать самую последнюю запись из таблицы файла А. То есть сегодня это одно число, через неделю в файл А добавляется новое значение - и в файле Б в ячейке А1 это значение тоже должно меняться.
Надеюсь, выразился понятно. Очень надеюсь на ответы и заранее всем благодарен!
--------------------
А что на самом деле хотел сказать "Frost_Imp" никто не знает, так как одминистрация форума попросила его быть вежливым.
...
Рейтинг: 0 / 0
Последняя непустая ячейка
    #34181297
Frost_Imp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Полазил по форуму, нашел несколько ответов посредством vba, но все эти решения указывают на координаты последней ячейки, а не берут оттуда данные. Я бы эти возможности совместил бы, но, к сожалению, не настолько силен в программировании.
--------------------
А что на самом деле хотел сказать "Frost_Imp" никто не знает, так как одминистрация форума попросила его быть вежливым.
...
Рейтинг: 0 / 0
Последняя непустая ячейка
    #34181316
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с помощью формул, например:
=INDIRECT("[Book8.xls]Sheet1!$A$" & COUNTIF([Book8.xls]Sheet1!A:A;">0"))
...
Рейтинг: 0 / 0
Последняя непустая ячейка
    #34181453
Frost_Imp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
странная формула. Побаловался с vba... Получилось через одно место, но...
Другой вопрос возник... Ставлю в начале процедуры
Код: plaintext
    With Application\n        .DisplayAlerts = False\n        .ScreenUpdating = False\n    End With
но от мельтешения окон это не избавило. Что неправильно?
--------------------
А что на самом деле хотел сказать "Frost_Imp" никто не знает, так как одминистрация форума попросила его быть вежливым.
...
Рейтинг: 0 / 0
Последняя непустая ячейка
    #34182113
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Frost_Impстранная формула. Побаловался с vba... Получилось через одно место, но...
Другой вопрос возник... Ставлю в начале процедуры
Код: plaintext
    With Application\n        .DisplayAlerts = False\n        .ScreenUpdating = False\n    End With
но от мельтешения окон это не избавило. Что неправильно?
--------------------
А что на самом деле хотел сказать "Frost_Imp" никто не знает, так как одминистрация форума попросила его быть вежливым.

моргать не должно, покажи всю проедуру
...
Рейтинг: 0 / 0
Последняя непустая ячейка
    #34182145
Frost_Imp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
]
Код: plaintext
Sub actual_data()\n\'\n\'Frost\n\'\n    With Application\n        .DisplayAlerts = False\n        .ScreenUpdating = False\n    End With\n\n    ChDir "путь к дирректории"\n    Workbooks.Open Filename:= _\n        "имя_файла1.xls", _\n        UpdateLinks:= 3 \n    \n    Windows("имя_файла1.xls").Activate\n    Sheets("Лист1").Select\n    Call GotoLast\n    ActiveCell.Offset(rowOffset:= 0 , columnOffset:=- 5 ).Activate\n    Selection.Copy\n    Windows("имя_файла2.xls").Activate\n    Range("B3").Select\n    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _\n        :=False, Transpose:=False\n\n    Windows("имя_файла1.xls").Activate\n    Sheets("Лист2").Select\n\n\'..... и так далее еще 5 листов\nEnd Sub\n
--------------------
А что на самом деле хотел сказать "Frost_Imp" никто не знает, так как одминистрация форума попросила его быть вежливым.[/color
...
Рейтинг: 0 / 0
Последняя непустая ячейка
    #34182161
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Frost_ImpДоброго всем дня суток!
Очень нужен ответ на следующий вопрос... Опишу
Есть файл А, в нем таблица, в нее, скажем, в столбец В еженедельно вносятся данные. Таких файлов много. Есть другой файл Б, в нем общая таблица. Так вот, в файле Б, скажем, в ячейке А1 нужно отображать самую последнюю запись из таблицы файла А. То есть сегодня это одно число, через неделю в файл А добавляется новое значение - и в файле Б в ячейке А1 это значение тоже должно меняться.
Надеюсь, выразился понятно. Очень надеюсь на ответы и заранее всем благодарен!
--------------------
А что на самом деле хотел сказать "Frost_Imp" никто не знает, так как одминистрация форума попросила его быть вежливым.

если список сплошной то думаю можно воспользоваться двумя функциями
Код: plaintext
=ИНДЕКС(G3:G1000;СЧЁТЗ(G3:G1000))
...
Рейтинг: 0 / 0
Последняя непустая ячейка
    #34182188
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Frost_Imp]
Код: plaintext
Sub actual_data()\n\'\n\'Frost\n\'\n    With Application\n        .DisplayAlerts = False\n        .ScreenUpdating = False\n    End With\n\n    ChDir "путь к дирректории"\n    Workbooks.Open Filename:= _\n        "имя_файла1.xls", _\n        UpdateLinks:= 3 \n    \n    Windows("имя_файла1.xls").Activate\n    Sheets("Лист1").Select\n    Call GotoLast\n    ActiveCell.Offset(rowOffset:= 0 , columnOffset:=- 5 ).Activate\n    Selection.Copy\n    Windows("имя_файла2.xls").Activate\n    Range("B3").Select\n    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _\n        :=False, Transpose:=False\n\n    Windows("имя_файла1.xls").Activate\n    Sheets("Лист2").Select\n\n\'..... и так далее еще 5 листов\nEnd Sub\n
--------------------
А что на самом деле хотел сказать "Frost_Imp" никто не знает, так как одминистрация форума попросила его быть вежливым.[/color

а где процедура GotoLast?

примерно так
Код: plaintext
Sub actual_data()\nDim xlWb As Workbook\n\'    With Application\n\'        .DisplayAlerts = False\n\'        .ScreenUpdating = False\n\'    End With\n\n    \'ChDir "путь к дирректории"\n    Set xlWb = Workbooks.Open(Filename:="путь + имя_файла1.xls", _\n        UpdateLinks:= 3 )\n    \n    \'Windows("имя_файла1.xls").Activate\n    \'Sheets("Лист1").Select\n    \n    Call GotoLast(xlWb.Worksheets("..."))\n    \'ActiveCell.Offset(rowOffset:=0, columnOffset:=-5).Activate\n    xlWb.Worksheets("...").Range("...").Copy\n    \'Windows("имя_файла2.xls").Activate\n    ThisWorkbook.Worksheets("...").Range("B3").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _\n        :=False, Transpose:=False\n                      \'или\n                       ThisWorkbook.Worksheets("...").Range("B3") = xlWb.Worksheets("...").Range("...")\n    \n    \n    xlWb.Close\n    Set xlWb = Nothing\n    \'Windows("имя_файла1.xls").Activate\n    \'Sheets("Лист2").Select\n    \n\'..... и так далее еще 5 листов\nEnd Sub
примерно так
...
Рейтинг: 0 / 0
Последняя непустая ячейка
    #34182205
Frost_Imp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkodor
если список сплошной то думаю можно воспользоваться двумя функциями
Код: plaintext
=ИНДЕКС(G3:G1000;СЧЁТЗ(G3:G1000))

А если диапазоны в другой книге - эта формула работать будет?
...
Рейтинг: 0 / 0
Последняя непустая ячейка
    #34182210
Frost_Imp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkodor
а где процедура GotoLast?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Sub GotoLast()
    On Error Resume Next
    Application.ScreenUpdating = False
    Cells(Cells.Find("*", Range("A1"), , , xlByRows, xlPrevious).Row, _
    Cells.Find("*", Range("A1"), , , xlByColumns, xlPrevious).Column).Select
    If Err.Number <>  0  Then MsgBox "No data in sheet"
    Application.ScreenUpdating = True
End Sub
в этом же модуле
...
Рейтинг: 0 / 0
Последняя непустая ячейка
    #34182219
Frost_Imp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkodor
твой вариант для меня слишком сложен. Не изменяя мой код - можешь объяснить, почему окна мельтешат?
--------------------
А что на самом деле хотел сказать "Frost_Imp" никто не знает, так как одминистрация форума попросила его быть вежливым.
...
Рейтинг: 0 / 0
Последняя непустая ячейка
    #34182227
Taranaga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Frost_ImpДоброго всем дня суток!
Очень нужен ответ на следующий вопрос... Опишу
Есть файл А, в нем таблица, в нее, скажем, в столбец В еженедельно вносятся данные. Таких файлов много. Есть другой файл Б, в нем общая таблица. Так вот, в файле Б, скажем, в ячейке А1 нужно отображать самую последнюю запись из таблицы файла А. То есть сегодня это одно число, через неделю в файл А добавляется новое значение - и в файле Б в ячейке А1 это значение тоже должно меняться.
Надеюсь, выразился понятно. Очень надеюсь на ответы и заранее всем благодарен!
--------------------
А что на самом деле хотел сказать "Frost_Imp" никто не знает, так как одминистрация форума попросила его быть вежливым.
Если можно добавить один служебный столбец и в нем прописать примерно следующее:
Код: plaintext
=если(a1<>"";строка();"")
То простая функция
Код: plaintext
=Макс
по этому столбцу вернет номер строки последней записи, а там уже связка
Код: plaintext
=двссыл(адрес(строка;столбец;;;Лист))
...
Рейтинг: 0 / 0
Последняя непустая ячейка
    #34182231
Frost_Imp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Frost_Imp vkodor
если список сплошной то думаю можно воспользоваться двумя функциями
Код: plaintext
=ИНДЕКС(G3:G1000;СЧЁТЗ(G3:G1000))

А если диапазоны в другой книге - эта формула работать будет?
Какой правильный синтаксис, если диапазон нужно проверить в книге1 листа1?
...
Рейтинг: 0 / 0
Последняя непустая ячейка
    #34182233
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Frost_Imp vkodor
если список сплошной то думаю можно воспользоваться двумя функциями
Код: plaintext
=ИНДЕКС(G3:G1000;СЧЁТЗ(G3:G1000))

А если диапазоны в другой книге - эта формула работать будет?
Будет, только связи обновлять придется.
...
Рейтинг: 0 / 0
Последняя непустая ячейка
    #34182241
Frost_Imp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkodorБудет, только связи обновлять придется.
А связи обновляются, если я правильно понимаю, с явным указанием книги и листа? Тогда не пойдет. Меня вроде как пока мой вариант устраивает (см. выше) но не могу избавится от мельтешения окон.
...
Рейтинг: 0 / 0
Последняя непустая ячейка
    #34182242
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Frost_Imp vkodor
твой вариант для меня слишком сложен. Не изменяя мой код - можешь объяснить, почему окна мельтешат?
--------------------
А что на самом деле хотел сказать "Frost_Imp" никто не знает, так как одминистрация форума попросила его быть вежливым.
Код: plaintext
Application.ScreenUpdating = False
работает в рамках одного окна
а ты этой строкой
Код: plaintext
 Windows("имя_файла1.xls").Activate
меняешь окна
попробуй перед

Код: plaintext
    With Application\n        .DisplayAlerts = False\n        .ScreenUpdating = False\n    End With

поставить
Код: plaintext
   Application.ShowWindowsInTaskbar = False
что бы открывалось все в одном окне
...
Рейтинг: 0 / 0
Последняя непустая ячейка
    #34182257
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Frost_Imp Frost_Imp vkodor
если список сплошной то думаю можно воспользоваться двумя функциями
Код: plaintext
=ИНДЕКС(G3:G1000;СЧЁТЗ(G3:G1000))

А если диапазоны в другой книге - эта формула работать будет?
Какой правильный синтаксис, если диапазон нужно проверить в книге1 листа1?

Код: plaintext
=ИНДЕКС('C:\[Книг1.xls]Лист1'!$G$ 3 :$G$ 300 ;СЧЁТЗ('C:\[Книг1.xls]Лист1'!$G$ 3 :$G$ 300 ))
...
Рейтинг: 0 / 0
Последняя непустая ячейка
    #34182258
Frost_Imp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkodor
попробуй поставить
Код: plaintext
   Application.ShowWindowsInTaskbar = False
что бы открывалось все в одном окне
Не-а, не работает. А если
Код: plaintext
1.
2.
3.
4.
    With Application
        .DisplayAlerts = False
        .ScreenUpdating = False
    End With
ставить перед каждым окном?
...
Рейтинг: 0 / 0
Последняя непустая ячейка
    #34183069
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Sub actual_data()
    Dim xlWb As Workbook
    Dim rng As Range
    With Application
        .DisplayAlerts = False
        .ScreenUpdating = False
    End With
    Set xlWb = Workbooks.Open(Filename:="путь + имя_файла1.xls", UpdateLinks:= 3 )
    
        With xlWb.Worksheets("Лист1")
            Set rng = .Cells(.Cells.Find("*", .Range("A1"), , , xlByRows, xlPrevious).Row, _
                .Cells.Find("*", .Range("A1"), , , xlByColumns, xlPrevious).Column)
        End With
        If Not rng Is Nothing Then _
            Workbooks("имя_файла2.xls").Worksheets("имя_листа").Range("B3") = rng.Offset( 0 , - 5 )    
        '..... и так далее еще 5 листов
    
    Set rng = Nothing
    xlWb.Close
    Set xlWb = Nothing
    With Application
        .DisplayAlerts = True
        .ScreenUpdating = True
    End With
End Sub
...
Рейтинг: 0 / 0
Последняя непустая ячейка
    #34183639
sergeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в процедуре GotoLast() стоит
Application.ScreenUpdating = True
наверно поэтому мельтешит
...
Рейтинг: 0 / 0
Последняя непустая ячейка
    #34184211
Frost_Imp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergeyvgв процедуре GotoLast() стоит
Application.ScreenUpdating = True
наверно поэтому мельтешит
Там как раз стоит False
...
Рейтинг: 0 / 0
Последняя непустая ячейка
    #34184281
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Frost_Imp sergeyvgв процедуре GotoLast() стоит
Application.ScreenUpdating = True
наверно поэтому мельтешит
Там как раз стоит FalseВ начале процедуры стоит False, в конце процедуры стоит True.
Внимательнее надо быть.
...
Рейтинг: 0 / 0
Последняя непустая ячейка
    #34187563
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное я поздновато, но лучше переесть, чем недоспать...


=ПРОСМОТР(9E+307;G3:G1000)


KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Последняя непустая ячейка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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