Мой текущий код работает и выполняет работу по сохранению значений в определенных диапазонах в качестве глобальных переменных, а затем с помощью кнопки очищает эти данные из двух таблиц Excel, а с помощью другой кнопки восстанавливает очищенные данные.
Проблема в том, что время обработки является значительным, поскольку в моей книге много листов, и все они связаны между собой.Я задавался вопросом, может ли кто-нибудь придумать способ переписать код, чтобы Excel мог быстрее его обработать?
Заранее спасибо!
Option Explicit
Dim arr1 As Variant
Dim arr2 As Variant
Dim arr3 As Variant
Dim arr4 As Variant
Dim arr5 As Variant
Dim arr6 As Variant
Public Sub HidePD()
Dim rngData1 As Range
Dim rngData2 As Range
Dim rngData3 As Range
Dim rngData4 As Range
Dim rngData5 As Range
Dim rngData6 As Range
Dim cell As Range
With ThisWorkbook.Worksheets("Overview_Existing Portfolio EUR")
arr1 = ""
arr2 = ""
arr3 = ""
Set rngData1 = .Range("E12:I12,K12:DG12")
Set rngData2 = .Range("E10:I10,K10:DG10")
Set rngData3 = .Range("E16:I16,K16:DG16")
arr1 = .Range("E12:DG12")
arr2 = .Range("E10:DG10")
arr3 = .Range("E16:DG16")
rngData1.ClearContents
rngData2.ClearContents
rngData3.ClearContents
End With
With ThisWorkbook.Worksheets("Input Sheet LC")
arr4 = ""
arr5 = ""
arr6 = ""
Set rngData4 = .Range("I76:S103")
Set rngData5 = .Range("I111:S126")
Set rngData6 = .Range("I355:S390")
arr4 = .Range("I76:S103")
arr5 = .Range("I111:S126")
arr6 = .Range("I355:S390")
rngData4.ClearContents
rngData5.ClearContents
rngData6.ClearContents
End With
End Sub
Public Sub ShowPD()
With ThisWorkbook.Worksheets("Overview_Existing Portfolio EUR")
.Range("E12:DG12").Value = arr1
.Range("E10:DG10").Value = arr2
.Range("E16:DG16").Value = arr3
End With
With ThisWorkbook.Worksheets("Input Sheet LC")
.Range("I76:S103").Value = arr4
.Range("I111:S126").Value = arr5
.Range("I355:S390").Value = arr6
End With
End Sub