Я пытаюсь взять стандартный шаблон данных, выполнить некоторые преобразования (разобрать текст в столбцы), вызвать надстройку Tableau в моей подпрограмме, чтобы изменить данные, затем взять измененные данные и создать сводную таблицу (простая, верно?)
Я не совсем понимаю, что делаю неправильно, и я не могу найти в Интернете ничего, что ответило бы на мой вопрос - мой уровень программирования на VBA - средний уровень c.
Общая структура кода выглядит примерно так:
Делайте кучу вещей (здесь есть несколько циклов for, предназначенных для удаления листов и подготовки данных для преобразования таблиц). )
Вызов надстройки Tableau для изменения данных (см. Рисунок)
Выполните кучу других вещей с измененными данными (мало для циклов) , пару копий и вставок, а также создание нескольких листов и сводных таблиц)
Пример кода, который в настоящее время выполняется дважды
' Fill blank WBS descriptions and any remaining blanks in respective columns
For i = 1 To ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row
If Range("H" & i + 4).Value = "" Then
Range("H" & i + 4).Value = "N/A"
ElseIf IsEmpty(Range("H" & i + 4)) Then
Range("H" & i + 4).Value = "N/A"
End If
Next i
' Use ** TABLEAU ** to reshape data into columnar format - this needs testing, currently running Tableau sub twice
ActiveSheet.Range("H5").Select
Run "tsiUnpivot", ActiveSheet, ActiveCell, ActiveSheet.Range(ActiveCell, Cells(ActiveCell.CurrentRegion.Rows(ActiveCell.CurrentRegion.Rows.Count).Row, _
ActiveCell.CurrentRegion.Columns(ActiveCell.CurrentRegion.Columns.Count).Column)), ActiveCell.CurrentRegion, "", 0, False
' Autofit to review cells
ActiveSheet.Cells.Select
Cells.EntireColumn.autofit
Range("A2").Select
' Renaming Columns 5, 9 and 10 for pivot table creation
Range("E1").Value = "Hours" ```