2016-04-12 4 views
-1

Я новичок в VBA. Я надеюсь, что это не сложный вопрос для задачи you.My:Создать таблицу по VBA в Excel

У меня есть текст в столбце А и число в столбце B. Как это:

Column A Column B 
TEXT 1  3 
TEXT 2  2 
TEXT 3  3 
.....  ... 

мне нужно автоматически создавать таблицу в другой лист, который имеет две колонки. Первый содержит текст, который повторяется n раз (NUMBER в столбце B), а затем следующий текст из столбца A. Во втором столбце этой таблицы мне нужно число от 1 до NUMBER. например:

Column A Column B 
TEXT 1  1 
TEXT 1  2 
TEXT 1  3 
TEXT 2  1 
TEXT 2  2 
TEXT 3  1 
TEXT 3  2 
TEXT 3  3 
....  ....  

Затем мне нужно выполнить постпроцессорную таблицу, но я знаю, как это сделать. Я не знаю, как создать таблицу.

+2

Вы пробовали что-нибудь? Естественным выбором является цикл над соответствующими ячейками в столбце A первого листа при заполнении двух столбцов второго листа во внутреннем цикле, поддерживая переменную счетчика, которая указывает на строку во втором листе, где следующие значения: для написания. –

ответ

2

Расширение на мой комментарий:

Sub MakeTable() 
    Dim i As Long, j As Long, k As Long, m As Long, n As Long 
    Dim t As String 
    Dim ws As Worksheet 

    Sheets(1).Activate 
    Set ws = Sheets(2) 
    n = Cells(Rows.Count, 1).End(xlUp).Row() 

    k = 1 
    For i = 1 To n 
     t = Cells(i, 1).Value 
     m = Cells(i, 2).Value 
     For j = 1 To m 
      ws.Cells(k, 1).Value = t 
      ws.Cells(k, 2).Value = j 
      k = k + 1 
     Next j 
    Next i 
End Sub 

Это предполагает, что исходные данные в Лист1 и вы переводите его на Лист2, и что данные начинается в строке 1. Отрегулировать соответственно, если эти предположения являются ложными. То, как я определяю последнюю ячейку в столбце A, которая имеет данные, является важной идиомой в Excel VBA и должна быть освоена.

+0

Да. Большое спасибо. Он отлично работает. На самом деле, это легкая задача, но я новичок в VBA. Я хорошо знаю MATLAB, поэтому создание таблицы (FOR loops) не было проблемой. Но исходный синтаксис кода был. Так что еще раз спасибо. –

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