Вам нужно добавить имя сборки следующим образом:
Type.GetType("MyProject.Domain.Model." + myClassName + ", AssemblyName");
Чтобы избежать двусмысленности или если сборка находится в GAC, вы должны предоставить полное имя сборки, например:
Type.GetType("System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");
Измените объект, переданный функции с Chart
на полный ChartObject
, например:
Private Sub HideEmptyCharts()
Dim wksCharts As Worksheet
Dim objCO As ChartObject
Set wksCharts= ThisWorkbook.Sheets("Report output")
For Each objCO In wksCharts.ChartObjects
objCO.Visible = True
If IsChartEmpty(objCO) Then objCO.Visible = False
Next objCO
End Sub
Private Function IsChartEmpty(co As ChartObject) As Boolean
Dim i As Integer
Dim j As Integer
Dim objSeries As Series
For i = 1 To co.Chart.SeriesCollection.Count
Set objSeries = co.Chart.SeriesCollection(i)
For j = 1 To UBound(objSeries.Values)
If objSeries.Values(j) <> 0 Then
IsChartEmpty = False
Exit Function
End If
Next j
Next i
IsChartEmpty = True
End Function
Устаревший сводный кеш и некоторые до сих пор запоминаются, но в то же время пропущенные вещи вызывали у меня некоторые проблемы в прошлом. Поэтому я предлагаю добавить этот код один раз:
Dim pc As PivotCache
For Each pc In ThisWorkbook.PivotCaches
pc.MissingItemsLimit = xlMissingItemsNone
pc.Refresh
Next pc