У меня есть макрос, который до сих пор добавляет 4 новых столбца таблицы в существующую таблицу («Таблица 1»). Теперь я хотел бы, чтобы макрос отформатировал 3-ю и 4-я строки в процентах. Я хотел бы включить это в цикл, уже указанный в моем коде. Я попробовал несколько разных способов сделать это. Я не думаю, что я вполне понимаю, как работает UBound-функция, но, надеюсь, вы можете понять, что я пытаюсь сделать.Excel VBA - вложенный цикл для форматирования столбцов таблицы excel
Я также не уверен, что мне разрешено продолжать использовать инструкцию WITH в моем вложенном цикле For в отношении переменной «lst».
@Jeeped - Я снова смотрю на тебя для этого ... спасибо за в основном шел меня через весь этот проект лол
Sub attStatPivInsertTableColumns_2()
Dim lst As ListObject
Dim currentSht As Worksheet
Dim colNames As Variant, r1c1s As Variant
Dim h As Integer, i As Integer
Set currentSht = ActiveWorkbook.Sheets("Sheet1")
Set lst = ActiveSheet.ListObjects("Table1")
colNames = Array("AHT", "Target AHT", "Transfers", "Target Transfers")
r1c1s = Array("=([@[Inbound Talk Time (Seconds)]]+[@[Inbound Hold Time (Seconds)]]+[@[Inbound Wrap Time (Seconds)]])/[@[Calls Handled]]", "=350", "=[@[Call Transfers and/or Conferences]]/[@[Calls Handled]]", "=0.15")
With lst
For h = LBound(colNames) To UBound(r1c1s)
.ListColumns.Add
.ListColumns(.ListColumns.Count).Name = colNames(h)
.ListColumns(.ListColumns.Count).DataBodyRange.FormulaR1C1 = r1c1s(h)
If UBound(colNames(h)) = 2 or UBound(colNames(h)) = 3 Then
For i = UBound(colNames(h), 2) To UBound(colNames(h), 3)
.ListColumns(.ListColumns.Count).NumberFormat = "0%"
End if
Next i
Next h
End With
End Sub