Копирование на новый лист в EXEL

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
Zoj
Сообщения: 6
Зарегистрирован: 15 сен 2010, 13:07

Помогите кто может пожалуйста..
При нажатии на кнопку нужно с одного листа скопировать данные(Range("A2:H5")) в другой лист с начала ("A1")
Но вся соль в том что нада еще чтобы при следующем нажатии на кнопку оно опять копировалось но вставлялось уже не с начала , а продолжало ниже вставлятся и так сколько угодно раз.
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

Код: Выделить всё

Sub test()
[a2:h5].Copy Destination:=Worksheets("Лист2").Range("A65536").End(xlUp).Offset(1, 0)
End Sub
Начинает "вставлять" данные с ячейки A2, в А1 можно поместить заголовки.
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
Zoj
Сообщения: 6
Зарегистрирован: 15 сен 2010, 13:07

Работает)СПС..
А как что бы оно копировало с другого листа а не с активного, и чтобы считало сколько раз скопировало.Помоги
Zoj
Сообщения: 6
Зарегистрирован: 15 сен 2010, 13:07

Еще одна проблема мне надо что бы оно копировало специально, чтобы только значения а формулы нет(
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

Код: Выделить всё

Sub test()
    n = Worksheets("Лист1").Range("A1")    'счетчик
    Worksheets("Лист1").Range("A2:H5").Copy
    Worksheets("Лист2").Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlValues'только значения
    Application.CutCopyMode = False
    n = n + 1
    Worksheets("Лист1").Range("A1") = n
End Sub
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
Zoj
Сообщения: 6
Зарегистрирован: 15 сен 2010, 13:07

Спасибо огромное!!Работает нормально..
А можно еще сделать так чтобы это была типа функцыя не привязаная к контретным листам.
Например чтобы в параметрах функции можно было указать с какого листа копировать, рендж, и куда копировать, а остальное внутри функции.
Был бы очень благодарен)
Zoj
Сообщения: 6
Зарегистрирован: 15 сен 2010, 13:07

вот я сделал так)

Код: Выделить всё

Sub Êíîïêà521_Ùåëêíóòü()
    n = Worksheets("Anketa").Range("M1")
    Copy "tmpDetails", "a1:h5", "qDetails"
    Copy "tmpHeaders", "a1:g2", "qHeaders"
    Copy "tmpOutlets", "a1:f2", "outlets"
    n = n + 1
    Worksheets("Anketa").Range("M1") = n
End Sub

Sub Copy(ByVal Sheets As String, ByVal R1 As String, ByVal Paste As String)
    Worksheets(Sheets).Range(R1).Copy
    Worksheets(Paste).Range("A65536").End(xlUp).Offset(0, 0).PasteSpecial Paste:=xlValues
    Application.CutCopyMode = False
End Sub
Спасибо тебе Виктор))
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

вот я сделал так)
Ну вот, все замечательно))
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
Zoj
Сообщения: 6
Зарегистрирован: 15 сен 2010, 13:07

)))спс еще раз огоромное! :)
Majckl
Сообщения: 3
Зарегистрирован: 09 окт 2010, 20:04

http://depositfiles.com/files/fp1imdwtw - все про VBA в MS OFFICE большинство для 2007 го и 2003 мне очень помогло
Ответить