2013-11-20 5 views
-1

У меня проблема:копирование из нескольких столбцов в другой

600 столбцов с 25 строками данных.

Мне нужно скопировать данные из графов 2 600 и поместить их в конце содержания в column1.

Любая информация в том, как я могу это сделать, будет очень признательна.

Вот код, который я в настоящее время используют:

Sub test() 

    Dim rng1 As Range 
    Dim rng2 As Range 
    Dim cl As Range 
    Dim r As Long 

    Set rng1 = Range("A1", Range("A1048576").End(xlUp)) 
    Set rng2 = Range("B1", Range("B1048576").End(xlUp)) 
    r = rng1.Rows.Count + 1 

    For Each cl In rng2 
    Cells(r, 1).Value = cl.Value 
    r = r + 1 
    Next 

End Sub 

Проблема заключается в том, что только копии B колонки, а не другие столбцы (например, C, D, E и др.)

+0

привет, было бы здорово, если бы вы могли включить то, что вы пробовали, и где вы застряли. Если в вашем attemp вы столкнулись с ошибками, пожалуйста, четко укажите это. – L42

+0

Я новичок, когда дело доходит до скриптов. Я пытаюсь решить эту проблему, пока я не наткнулся на какое-то решение на этом сайте следующим образом: – tekarmah

+0

Sub Test() Dim rng1 As Range Dim rng2 As Range Dim кл как диапазон Dim г As Long Set rng1 = Диапазон («А1», Диапазон («A1048576»). Конец (xlUp)) Установите rng2 = Диапазон («B1», Диапазон («B1048576»). Конец (xlUp)) r = rng1.Rows.Count + 1 Для каждого п в rng2 клеток (г, 1) .Value = cl.Value г = г + 1 Следующая End Sub – tekarmah

ответ

0

Вот что вам нужно я думаю:

Испытано:

Sub Test() 

Dim ws as WorkSheet 
Dim C1_lrow, C2_lrow, lcolumn, i as Long 
Dim rng as Range 

Set ws = Thisworkbook.Sheets("Sheet1") 'change this to what you have 

With ws 
    C2_lrow = .Range("B" & .Rows.Count).End(xlup).Row 
    lcolumn = .Cells(1, .Columns.Count).End(xlToLeft).Column 
    Set rng = .Range("B1:B" & C2_lrow) 
End With 

For i = 0 to lcolumn - 1 
    C1_lrow = ws.Range("A" & Rows.Count).End(xlup).Row 
    rng.Offset(0, i).copy ws.Range("A" & C1_lrow + 1) 
Next i 

End Sub 

Попробуйте, если он работает для вас.

+0

Ваше решение идеально подходит именно тем, что я хотел сделать. – tekarmah

+0

Как насчет случая, когда вам сначала нужно было упорядочить данные из строк в столбцы (транспонировать), а затем скопировать второй, третий и т. Д. Столбцы для присоединения или добавления в первый столбец? – tekarmah

0

I не решит это только в Excel.

  1. Сохраните файл как CSV-файл
  2. Открыть файл с редактором типа (например, Notepad ++)
  3. Replace ";" с «» или «»
  4. Сохраните файл
  5. Открыть файл с Excel

Теперь у вас есть только один столбец слева.

Если вам нужно, чтобы это было сделано автоматически, вам понадобится сценарий.

+0

Может быть, мне нужно прояснить мою проблему. Содержимое моей таблицы в excel выглядит так: A1..A25; B2..B25, C2..C25, D2..D25, .... и я хочу скопировать B2..B25 и вставить это на A26, .. A50 и копию C2..C25 и вставить на A51 .. A75 и т.д.Мне нужен сценарий для этого. – tekarmah

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