powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA Exsel. Как вставить скопированные данные из одного листа в незанятую ячейку другого?
7 сообщений из 7, страница 1 из 1
VBA Exsel. Как вставить скопированные данные из одного листа в незанятую ячейку другого?
    #34401586
Jarven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
В VBA Exsel. Существует примитивный макрос:

Sub Макрос1()
' Макрос1 Макрос

'
Selection.Copy
Sheets("Лист3").Select
'До этого момента идет выполнение макроса, копирующего
'выделенную область в другой лист. Как запустить выполнение проверки
'на первую незанятую строку в выбранном листе и вставки в неё
'скопированных данных? Или использовать иной объект, не Range?
Range(?).Select
ActiveSheet.Paste
End Sub
Спасибо.
...
Рейтинг: 0 / 0
VBA Exsel. Как вставить скопированные данные из одного листа в незанятую ячейку другого?
    #34401620
Jarven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Простите, вернее так...

Sub Макрос1()
'
' Макрос1 Макрос
'


Selection.Copy
Sheets("New").Select
Dim GetRealLastCell As String
GetRealLastCell = GetRealLastCell()
'Не пойму как заставить работать подпрограмму GetRealLastCell() внутри этого макроса
GetRealLastCell = ActiveCell ' Что-то вроде этого, но почему-то не работает!
ActiveSheet.Paste
End Sub


Public Sub GetRealLastCell()
Dim realLastRow As Long
Dim realLastColumn As Long
Range("A1").Select

On Error Resume Next
realLastRow = Cells.Find("*", Range("A1"), _
xlFormulas, , xlByRows, xlPrevious).Row
realColumn = Cells.Find("*", Range("A1"), _
xlFormulas, , xlByRows, xlPrevious).Column
Cells(realLastRow, realLastColumn).Select
End Sub
...
Рейтинг: 0 / 0
VBA Exsel. Как вставить скопированные данные из одного листа в незанятую ячейку другого?
    #34401693
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если у тебя GetRealLastCell() должно возвращать значение то она должна быть функцией а не процедурой
...
Рейтинг: 0 / 0
VBA Exsel. Как вставить скопированные данные из одного листа в незанятую ячейку другого?
    #34403891
Jarven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да нет, в том то и дело, что должно работать как процедура выбора первой не занятой строки в таблице и вставлять в неё скопированные данные из другого листа. GetRealLastCell() - не возвращает значение ячейки, а выбирает её. Возможно, надо запускать процедуру через оператор IF, но я уже и так запутался...
...
Рейтинг: 0 / 0
VBA Exsel. Как вставить скопированные данные из одного листа в незанятую ячейку другого?
    #34403912
Jarven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может я просто запарился со строчками
Dim GetRealLastCell As String
GetRealLastCell = GetRealLastCell()

но это только предположение, я и спрашиваю как заставить подпрограмму работать внутри макроса...
...
Рейтинг: 0 / 0
VBA Exsel. Как вставить скопированные данные из одного листа в незанятую ячейку другого?
    #34404552
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
функция возврата ячейки
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Public Function GetRealLastCell() As Range
Dim realLastRow As Long
Dim realLastColumn As Long
Range("A1").Select
realLastRow = Cells.Find("*", Range("A1"), _
xlFormulas, , xlByRows, xlPrevious).Row

realColumn = Cells.Find("*", Range("A1"), _
xlFormulas, , xlByRows, xlPrevious).Column
Set GetRealLastCell = Cells(realLastRow, realColumn)

End Function
Процедура вставки в ячейку
Код: plaintext
1.
2.
3.
4.
5.
6.
Sub GetRangeForPaste()
Dim rng As Range
Set rng = GetRealLastCell()
Range("B2:B2").Copy ' копируем что нибудь
Worksheets( 1 ).Paste Destination:=rng
Set rng = Nothing
End Sub
...
Рейтинг: 0 / 0
VBA Exsel. Как вставить скопированные данные из одного листа в незанятую ячейку другого?
    #34410201
Jarven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TIKO,
большое спасибо. Методом тыка дошел, примерно до того же самого. Засел на вставке в активный лист, поэтому отдельное спасибо за строку:

Worksheets(1).Paste Destination:=rng

Вопрос немного мимо кассы - есть ли смысл и надобность в, примерно, таких же случаях, в строке кода:

Dim Selection As Range

или это не правильно?
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA Exsel. Как вставить скопированные данные из одного листа в незанятую ячейку другого?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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