У меня есть следующая проблема: у меня есть лист excel с 5000 строк и 50 столбцов. мне нужно копировать и вставлять листы и экспортировать значения из определенных ячеек в строке в первом листе на этот лист, но если значение в B1 и B2 одинаково, тогда не создавайте другой лист, а скопируйте его на тот же лист в первой строке , Я добавил условие «07», потому что я не хочу, чтобы excel создавал 5000 листов в одном процессе. до сих пор у меня есть это:excel создать новый лист, если true
Sub Button1_Click()
Dim newsheetname As String
Dim isometry As String
Application.ScreenUpdating = False
Worksheets("Sheet1").Activate
x = 2
Do While Cells(x, 4) <> ""
If Cells(x, 1) = "07" Then
Sheets(Sheets.Count).Select
Cells(33, 2) = Sheet1.Cells(x, 4)
Cells(33, 28) = Sheet1.Cells(x, 32)
End If
If Cells(x, 4) <> Cells(x + 1, 4) Then
Sheets("template").Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = isometry
End If
isometry = Sheet1.Cells(x + 1, 4)
x = x + 1
Worksheets("Sheet1").Activate
Loop
End Sub
я знаю, что мой «код» очень проста и не совершенна, я начинаю с VBA. может кто-то посоветовать, как его завершить, я думаю, что это почти сделано, но я пропускаю строку для «нового» листка также, теперь я получаю сообщение об ошибке, я не могу иметь 2 листа с таким же именем, конечно. благодаря
Не то, что вы спросили об этом, но вы найдете вещи намного быстрее, если вы избегаете 'Worksheets («Лист1»). Activate' и' ссылки ActiveSheet'. Используйте объекты и имена, когда это возможно. –
во время первой итерации, если условия выполнены, вы попытаетесь изменить название листа на ничто. Переместите 'isometry = sheet1.cells (x + 1,4)' вверх или установите некоторое имя перед началом цикла. Что еще тебе нужно? Где у вас есть ошибка? Чтобы добавить новый лист в конце, используйте эту простую строку 'Sheets.Add After: = Sheets (Sheets.Count)' –
на моем первом листе, значения в (x, 1) и (x + 1,1) одинаковы и код пытается создать новый лист с именем существующего листа. я хочу, если x = x + 1 или x = x-1, то добавьте ячейки из этой строки в существующий лист и не создайте новый ... –