В Excel У меня есть макрос, который преобразует все столбцы активного листа в новый лист под названием «MasterList»Excel Добавить лист или перезапись, если Exists
Моя проблема в том, когда я повторно запустить этот макрос я получаю сообщение об ошибке говорящее "Это имя уже занято." Попробуйте другой.
Мне нужен мой макрос, чтобы переписать лист MaterList, если он уже существует.
Вот мой код:
Sub ToArrayAndBack()
Dim arr As Variant, lLoop1 As Long, lLoop2 As Long
Dim arr2 As Variant, lIndex As Long
'turn off updates to speed up code execution
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
.DisplayAlerts = False
End With
ReDim arr2(ActiveSheet.UsedRange.Cells.Count - ActiveSheet.UsedRange.SpecialCells(xlCellTypeBlanks).Count)
arr = ActiveSheet.UsedRange.Value
For lLoop1 = LBound(arr, 1) To UBound(arr, 1)
For lLoop2 = LBound(arr, 2) To UBound(arr, 2)
If Len(Trim(arr(lLoop1, lLoop2))) > 0 Then
arr2(lIndex) = arr(lLoop1, lLoop2)
lIndex = lIndex + 1
End If
Next
Next
Sheets.Add.Name = "MasterList"
Range("A1").Resize(, lIndex + 1).Value = arr2
Range("A1").Resize(, lIndex + 1).Copy
Range("A2").Resize(lIndex + 1).PasteSpecial Transpose:=True
Rows(1).Delete
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
.DisplayAlerts = True
End With
End Sub
Только предложение: вы не можете просто удалить его, если он существует и воссоздать его? – user1274820
Я не думаю, что смогу, так как я свяжу его с MS Access. – Bigotacon