2013-04-02 4 views
0

Доброе утро!Копирование заголовков из файла excel (код Excel VBA)

Я работаю над файлом excel, в котором хочу скопировать заголовки с одного листа и вставить его после заголовков другого листа. Пример:

Лист 1 имеют заголовки данных, как: enter image description here

лист 2 имеют заголовки данных, как: enter image description here

Вопрос заключается в том, что число заголовков в обеих не делает remian постоянная каждый месяц , Поэтому я хочу, чтобы код thie (VBA) копировал заголовки, начиная с A1, до последней используемой ячейки листа2 и вставлял ее после последней используемой ячейки листа1. Вот код, который я написал в меру моих знаний о VBA:

Sub LastColumnInOneRow() 
'Find the last used column in a Row: row 1 in this example 
    Dim LastCol As Integer 
    Dim LastCell As String 
    Dim last As Long 
    Dim rng As Range 
    With Sheets("Data") 
    LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column 
Set rng = Sheets("Data").Cells 
LastCell = last(3, rng) 
Range("A1" & LastCell).Select 
Selection.Copy 
End With 
End Sub 

Я знаю, что есть что-то не так с этим кодом, как это Безразлично запустить. Может ли кто-нибудь помочь с этой проблемой.

Спасибо тонну!

+0

хорошо, ваш * С * блок отсутствует, это * конец с * и ваша линия ** LastCell = последняя (3, rng) ** тоже выглядит неправильно, если нет функции, называемой * last *, которую я не знаю! Взгляните на мой код ниже: –

ответ

2

попробуйте ниже:

Sub LastColumnInOneRow() 

Dim rngSource As Range 
Dim rngDestination As Range 

sheets("Sheet2").select 
Set rngSource = Range(Cells(1, 1), Cells(1, Range("A1").End(xlToRight).Column)) 
rngsource.copy 

sheets("Sheet1").select 
Set rngDestination = Range("A1").End(xlToRight).Offset(0, 1) 

' rngSource.Copy Destination:=rngDestination 
' rngDestination.pastespecial xlpasteall 
rngDestination.select 
activesheet.paste 
End Sub 

, которые должны получить вы начали

Филипп

+0

Спасибо за ваш ответ. Код дает ошибку; «Object requiredd» и выделяет эту строку кода: Set rngSource = Sheet2.Range (Sheet2.Cells (1, 1), Sheet2.Cells (1, Sheet2.Range («A1»). End (xlToRight) .Column)). – Nupur

+3

Вы должны использовать «Dim Sheet2 as Worksheet, Set Sheet2 = Sheets (« enter_your_sheetname_here »), и все должно быть хорошо. Также я бы предложил использовать ячейки (1, columns.count) .end (xlToLeft) .column как ваш путь не будет работать, если есть пустые заголовки столбцов –

+0

yes, sheet2/sheet1 - это идентификатор или ссылка в редакторе VB - Project Explorer (используйте CTRL-R для отображения), если это было переименовано по любой причине, а вместо Sheet2, используйте ** Листы («Лист2») ** и вместо листа 1 используют ** листы (Лист1 ») ** –

Смежные вопросы