Я новый пользователь vba.Подкатегория вне пределов досягаемости - Большинство компьютеров работают нормально (шахта включена)
Существует недавно проблема VBA, которая оставила меня довольно невежествен и беспомощен - индекс вне диапазона - на компьютере конкретного пользователя, когда каждый пользователь, кажется, не имеют проблему с помощью макроса (включая меня), поэтому я не может просто проб и ошибок устранить неполадки.
Следовательно, действительно нужна экспертная помощь от всех вас! Действительно очень оценили !!
Я использовал серию vba, которые будут запускаться один за другим и вставлять их в хронологическом порядке следующим образом.
VBA 1
Sub VBA_1()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
ws.Outline.ShowLevels 1, 1
Next ws
End Sub
VBA 2
Sub VBA_2()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
ws.Protect ("Password")
Next ws
End Sub
VBA 3
Sub VBA_3()
Dim iRet As Integer
Dim strPrompt As String
'Prompt
strPrompt = "This will take about 2 minutes. Click 'OK' to proceed."
'Show msgbox
iRet = MsgBox(strPrompt, vbOKCancel)
'When user clicked 'OK'..
If iRet = vbOK Then
'SaveAs Function
Dim fName As String
fName = Application.GetSaveAsFilename(, "Excel Binary Workbook (*.xlsb), *.xlsb")
If fName = "False" Then
MsgBox "File not saved.", vbOKOnly
Cancel = True
End If
Application.EnableEvents = False
ThisWorkbook.SaveAs Filename:=fName, FileFormat:=xlExcel12
Application.EnableEvents = True
' Calculate
Application.Calculate
Application.ScreenUpdating = True
' Outlet
Worksheets("Total Outlets").Activate
'Copy and Paste this portion to each worksheet
For Each cell In Range("A1")
If cell.Value = "Not Applicable" Then
ActiveSheet.Visible = xlSheetHidden
Else
Call HypMenuVRefresh
End If
Next
'End Outlet & Copy and Paste
Worksheets("D11101").Activate
For Each cell In Range("A1")
If cell.Value = "Not Applicable" Then
ActiveSheet.Visible = xlSheetHidden
Else
Call HypMenuVRefresh
End If
Next
Worksheets("D11102").Activate
For Each cell In Range("A1")
If cell.Value = "Not Applicable" Then
ActiveSheet.Visible = xlSheetHidden
Else
Call HypMenuVRefresh
End If
Next
'Hide sheets accordingly
Worksheets("Restaurant List").Visible = xlSheetVeryHidden
Worksheets("Hotel List").Visible = xlSheetVeryHidden
'Recalculate
Application.Calculate
Application.ScreenUpdating = True
'Renaming of tabs
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
If ws.Range("A2").Value = 1 Then
If ws.Visible = xlSheetVisible Then
On Error Resume Next
ws.Name = ws.Range("A10").Value
End If
End If
Next ws
'Save Workbook
ActiveWorkbook.Save
'Enable finishing screen to be 'Input'
Sheets("Input").Select
'Show msgbox
MsgBox ("Retrieval Completed!")
Else
MsgBox ("Retrieval of Data Cancelled")
End If
End Sub
В какую строку он вызывает ошибку? – CallumDA
замените 'ActiveWorkbook' на' ThisWorkbook' и 'ActiveSheet' с' ThisWorkbook.Worksheets («имя листа») 'и если все еще выдает сообщение с кодом' HypMenuVRefresh' слишком http://stackoverflow.com/documentation/excel- vba/1107/vba-best-practices/9292/avoid-using-select-or-activate – Slai
Сложно сказать, но это скорее всего код, как это отбрасывает вас .....Рабочие листы (), это приведет к этой ошибке, если лист не существует и, возможно, если он не доступен (не уверен в дальнейшем) –