2016-11-15 3 views
-3

Мне нужна помощь в поиске способа объединения нескольких строк в одну строку в excel.Объедините несколько строк в одну строку - Excel

Например, у меня есть 8 столбцов (A - H) данных в строках 1 - 4 и 5 - 8 (таблица 1). Мне нужен метод перемещения всех столбцов строк 2 - 4 в столбцы I - AF строки 1 и все столбцы строк 4 - 8 в столбцы I - AF строки 5 (таблица 2). Полученные пустые строки также не нужны. В действительности, мне нужно применить этот метод несколько раз. Есть идеи?

Table 1 
    A B C D E F G H 
1 1 2 3 4 5 6 7 8 
2 9 10 11 12 13 14 15 16 
3 17 18 19 20 21 22 23 24 
4 25 26 27 28 29 30 31 32 
5 1 2 3 4 5 6 7 8 
6 9 10 11 12 13 14 15 16 
7 17 18 19 20 21 22 23 24 
8 25 26 27 28 29 30 31 32 

Table 2 
    A B C D E F G H I … AD AE AF 
1 1 2 3 4 5 6 7 8 9 … 30 31 32 
2             
3             
4             
5 1 2 3 4 5 6 7 8 9 … 30 31 32 
6             
7             
8             
+1

'Любые идеи? 'Слишком широка для этого форума. Stack Overflow - это не код для моего сайта. Пожалуйста, напишите любой код, который вы попробовали, и объясните, в чем именно ошибка, поэтому мы можем помочь вам преодолеть эту конкретную ошибку. –

+0

@ScottCraner - Извиняюсь. Я относительно новичок в использовании excel для управления большими наборами данных. Для будущих должностей я сначала отправлю свои усилия. – KGHicks

ответ

0

Я позаботилась, чтобы разработать код VBA, я не знаю свой уровень в Excel .. Я также позаботилась, чтобы сделать код как можно более простым. В этом коде (ниже): Листы 1 - это лист, на котором представлены и прочитаны данные. Sheet2 - это лист, на котором записаны данные. RowsColsTransformer() - это процедура запуска.

«VBA:

Sub RowsColsTransformer() 
Dim CurrentLine As Integer 
Dim CurrentLine2 As Integer 
Dim CurrentCols2 As Integer 
Dim Max As Integer 

CurrentLine2 = 2 
CurrentCols2 = 1 
Max = 10 ' -- Number of lines in the sheet where data will be read. 
For CurrentLine = 2 To Max 
    Sheets(2).Cells(CurrentLine2, CurrentCols2) = Sheets(1).Cells(CurrentLine, 1) 
    CurrentCols2 = CurrentCols2 + 1 
    Sheets(2).Cells(CurrentLine2, CurrentCols2) = Sheets(1).Cells(CurrentLine, 2) 
    CurrentCols2 = CurrentCols2 + 1 
    Sheets(2).Cells(CurrentLine2, CurrentCols2) = Sheets(1).Cells(CurrentLine, 3) 
    CurrentCols2 = CurrentCols2 + 1 
    Sheets(2).Cells(CurrentLine2, CurrentCols2) = Sheets(1).Cells(CurrentLine, 4) 
    CurrentCols2 = CurrentCols2 + 1 
    Sheets(2).Cells(CurrentLine2, CurrentCols2) = Sheets(1).Cells(CurrentLine, 5) 
    CurrentCols2 = CurrentCols2 + 1 
    Sheets(2).Cells(CurrentLine2, CurrentCols2) = Sheets(1).Cells(CurrentLine, 6) 
    CurrentCols2 = CurrentCols2 + 1 
    Sheets(2).Cells(CurrentLine2, CurrentCols2) = Sheets(1).Cells(CurrentLine, 7) 
    CurrentCols2 = CurrentCols2 + 1 
    Sheets(2).Cells(CurrentLine2, CurrentCols2) = Sheets(1).Cells(CurrentLine, 8) 
    CurrentCols2 = CurrentCols2 + 1 
    '-- Reintialize Line and Column 
    If CurrentLine Mod 4 = 1 And CurrentLine > 1 Then 
     CurrentLine2 = CurrentLine2 + 1 
     CurrentCols2 = 1 
    End If 
Next CurrentLine 
End Sub 

Holp это может помочь.

+0

Спасибо за помощь! Ваш код работал отлично. – KGHicks

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