Нужна помощь с помощью скрипта VBA для Excel, чтобы преобразовать данные в столбец в новую строку, если определенный столбец не пуст. Дублируйте исходные данные в нескольких первичных столбцах в новую строку и скопируйте/уплотните данные из другого столбца в эту новую строку, если ячейка в столбце не пуста. В моем файле записано 1000 записей, и у меня нет времени их индивидуально разделить. Лучше всего, если смотреть визуально ниже (извините, не хватило репутации, чтобы отправить изображение)Преобразование столбца в строку, если ячейка не пустой
Начинается вот так.
Col1 ....... Col2 ..... Col3 ..... COL4
Itema ..... $ 2 .............. ...........
ItemB ..... $ 2 ........ $ 4 .............
товарC ..... $ 6 .........................
ItemD ..... $ 2 ........ $ 3 ...... ... $ 5
ItemE ..... $ 9 .........................
Отделка как это
Col1 ....... Col2
Itema ..... $ 2
ItemB ..... $ 2
ItemB ..... $ 4
ItemC ..... $ 6
ItemD ..... $ 2
ItemD ..... $ 3
ItemD ..... $ 5
ItemE ..... $ 9
Это как я бы обрабатывать в VB и HTML с петли записей. Просто нужно посоветовать о том, в каком месте определяется набор записей или диапазон, и как он начинается через столбцы.
Dim Col1, Col2, Col3, Col4, RowData, CondenseData, FinalData
FinalData = ""
While ((RS.Items__numRows <> 0) AND (NOT RS.Items.EOF)) 'recordset loop how in Excel?
CondenseData = ""
Col1 = RS.Col1Data 'how to go from column to column in row in excel?
Col2 = RS.Col2Data
Col3 = RS.Col3Data
Col4 = RS.Col4Data
If Not IsNull(Col2) Then
CondenseData = Col1 & ", " & Col2
RowData = CondenseData & "<br />" ' create a new row with the revised data if not empty?
End If
If Not IsNull(Col3) Then
CondenseData = Col1 & ", " & Col3
RowData = CondenseData & "<br />"
End If
If Not IsNull(Col4) Then
CondenseData = Col1 & ", " & Col4
RowData = CondenseData & "<br />"
End If
FinalData = FinalData & RowData
RS.Items__index=RS.Items__index+1
RS.Items__numRows=RS.Items__numRows-1
RS.Items.MoveNext()
Wend
Добро пожаловать в SO! Чтение [как задать хороший вопрос] (http://stackoverflow.com/help/how-to-ask) даст вам ответ раньше. Помните, что это не служба написания кода, поэтому опубликуйте, что у вас есть, и мы можем помочь вам исправить это. Если вы не знаете, с чего начать, попробуйте использовать Macro Recorder. – FreeMan
Я слышал, что вы не являетесь кодовым сервисом.Я могу сделать это во сне с помощью VB и html через цикл набора записей, а если это будут утверждения или даже оператор for, но я не могу понять, как создать «набор записей» (я знаю, что это диапазон) в excel. или перейти к следующей записи. Я могу легко разместить часть vb, если это поможет. – Brewy