Можно ли формировать массивы только с текстом внутри ячеек вместо циклического перебора пустых ячеек со встроенными формулами?
Например, у меня есть скрипт, который собирает UBound обоих измерений, но он также проходит по ячейкам без вычисляемых данных (кажется пустым).Это приводит к значительному увеличению времени выполнения, поскольку у меня есть встроенные формулы, охватывающие 1000 столбцов и 62 строки.
Как я мог сказать этому сценарию формировать массив только с ячейками, в которых был рассчитан текст, и игнорировать любые видимые пустые ячейки со встроенными формулами?
Option Explicit
Sub Main()
Dim wb As Workbook
Dim Data, Last, JobFamily
Dim sourcerow As Long, destcol As Long, sourcecol As Long, destrow As Long
Dim Dest As Range
Dim BASEPATH As String
Dim sPath, sFile As String
BASEPATH = "M:\Combine\"
sPath = "M:\VBA\"
sFile = sPath & "Book2.xlsx"
Set wb = Workbooks.Open(sFile)
Set Dest = wb.Sheets("Sheet1").Range("B1")
With ThisWorkbook.Sheets("Profiles")
Data = .Range("B1", .Cells(.Cells(.Rows.Count, 2).End(xlUp).Row, .Columns.Count).End(xlToLeft))
End With
wb.Activate
Application.ScreenUpdating = False
For sourcecol = 1 To UBound(Data, 2)
If Data(1, sourcecol) <> Last Then
If sourcecol > 1 Then
Dest.Select
wb.SaveCopyAs BASEPATH & _
ValidFileName(Last & ".xlsx")
End If
Dest.Resize(, Columns.Count - Dest.Column).EntireColumn.ClearContents
Last = Data(1, sourcecol)
destcol = 0
End If
destrow = 0
For sourcerow = 1 To UBound(Data)
Dest.Offset(destrow, destcol) = Data(sourcerow, sourcecol)
destrow = destrow + 1
Next
destcol = destcol + 1
Next
End Sub