Я полностью озадачен ... этот макрос смотрит на Range
, рисует номер с Rnd
, затем создает vlookup
, чтобы вернуть цитату и автора каждый раз, когда я открываю книгу (если необходимо).Ошибка выполнения 424: Новая версия и старая версия
Эта ошибка началась только сегодня вечером, но только на сегодняшних версиях. Я могу открыть старые версии и запустить код так, как ожидалось.
Ниже «Сегодня» последняя копия и выдает ошибку времени выполнения, с перерывом происходит на линии определения строки quote
:
Private Sub Workbook_Open()
Dim sht As Object
Dim RandNumb As Integer
Dim quote As String
Dim author As String
Dim ws As Worksheet
Set ws = Worksheets("Home")
'Make "Home" Sheet visible and select
ws.Visible = True
'Search for all sheets not named "Home" and hide them
For Each sht In Worksheets
If sht.Name <> "Home" Then
sht.Visible = xlSheetHidden
End If
Next sht
'Create random number, then vlookup based off number
RandNumb = Int((56 - 1 + 1) * Rnd + 1)
quote = Application.WorksheetFunction.VLookup(RandNumb, Sheet3.Range("ba101:bc465"), 2, False)
author = Application.WorksheetFunction.VLookup(RandNumb, Sheet3.Range("ba101:bc465"), 3, False)
If quote <> Empty Then
MsgBox quote & vbNewLine & vbNewLine & " - " & author, vbOKOnly, "Quote of the day"
End If
End Sub
В то время как версия с 2/6 работает просто отлично:
Private Sub Workbook_Open()
Dim sht As Object
Dim RandNumb As Integer
Dim quote As String
Dim author As String
Dim ws As Worksheet
Set ws = Worksheets("Home")
'Make "Home" Sheet visible and select
ws.Visible = True
ws.Select
Range("A1").Select
'Search for all sheets not named "Home" and hide them
For Each sht In Worksheets
If sht.Name <> "Home" Then
sht.Visible = xlSheetHidden
End If
Next sht
'Create random number, then vlookup based off number
RandNumb = Int((56 - 1 + 1) * Rnd + 1)
quote = Application.WorksheetFunction.VLookup(RandNumb, Sheet3.Range("ba101:bc465"), 2, False)
author = Application.WorksheetFunction.VLookup(RandNumb, Sheet3.Range("ba101:bc465"), 3, False)
If quote <> Empty Then
MsgBox quote & vbNewLine & vbNewLine & " - " & author, vbOKOnly, "Quote of the day"
End If
End Sub
Эти коды не отличаются от меня. Даже когда я копирую версию с 2/6 и помещаю ее в «Сегодня», я продолжаю получать ошибку. Помоги пожалуйста.
«Диапазон», который вы выбираете во втором примере ('' A1 "'), похоже, не существует на этом листе. – meatspace
Вы уверены, что не изменили кодовое имя листа Sheet3? Или объявлена переменная под названием «Приложение»? – Rory
Спасибо @Rory, это был 'Sheet3', в попытке организовать я изменил его на' Sheet03'. Это одна из основных проблем, с которыми я сталкиваюсь, делая слишком много изменений и не всегда помню, что я сделал. Какие-либо предложения? – PlainsWind