У меня работает VBA на листе Excel, который переводит данные на листе, чтобы я мог импортировать их в другое приложение.
Следующая функция очищает данные и удаляет перенос текста. Эта функция выполняется долго, когда листы имеют большое количество ячеек. Поскольку я нормализую данные для импорта в реляционную базу данных, на семи разных листах часто много ячеек.
Существует ли более эффективный способ удаления переноса текста и очистки данных в клетки?
Dim ws As Worksheet
Dim x, lrow, lcol, active As Long
Dim r, cel As Range
active = ActiveWorkbook.Worksheets.count
For x = 1 To active
Set ws = ThisWorkbook.Sheets(x)
ws.Select
Select Case ws.name
Case "Solution", "Description", "Problem", "Buyer", "ProjectType", "Process", "Feature"
lrow = ws.UsedRange.Rows(ActiveSheet.UsedRange.Rows.count).row
lcol = ws.UsedRange.Columns(ActiveSheet.UsedRange.Rows.count).Column
If lrow > 1 Then
Set r = ws.Range(Cells(2, 1), Cells(lrow, lcol))
For Each cel In r.Cells
cel.WrapText = False
cel.Value = Application.WorksheetFunction.Clean(cel.Value)
Next cel
End If
Case Else
End Select
ws.Cells(1, 1).Select
ThisWorkbook.Sheets("Solution").Activate
Next x