Эта ошибка появилась сегодня в следующем коде:
Public lngLast_CS_Sheet As Long
Public lngCS1_Index As Long
Public lngCSLast_Index As Long
Public Function num_CSx_Sheets() 'Function to find total number of CS Sheets
Dim w As Long, cs As Long
For w = 1 To Sheets.Count
cs = cs - CBool(UCase(Left(Sheets(w).Name, 2)) = "CS")
Next w
num_CSx_Sheets = cs
End Function
Эта функция работала нормально в течение нескольких лет, но выдает ошибку, когда w = 17 & cs = 4
Я проверил диапазон листов CS для неправильного именования пользователей, но не могу найти никаких проблем.
Функция вызывается с помощью следующего кода:
Sub BoMLookUpMaterials_2019_Rev_B()
'
' BoMSearch CS Sheets Macro - Modified 11/01/19 - PRS
'
Dim FirstSheet As Integer
Dim LastSheet As Integer
Dim LastRow As Integer
Dim FirstRow As Integer
Dim ItemQTY As Single
Dim sSheetName As String
Dim sItemName As String
With ActiveSheet
LastRow = Cells(.Rows.Count, "Q").End(xlUp).Row 'Find last row of BoM (Qty) Col Q
End With
'
sSheetName = ActiveSheet.Name 'Get sheet name of active Database sheet
'
lngLast_CS_Sheet = num_CSx_Sheets() 'Find total number of CS sheets
lngCS1_Index = Sheets("CS1").Index 'CS1 Sheet Index No.
lngCSLast_Index = Sheets("CS" & lngLast_CS_Sheet).Index 'Last CS Sheet Index No.
Select Case sSheetName 'Determines which BoM sheet initiated Update BOM procedure
Я не опытный Программист VBA и не может понять, почему это происходит сейчас. Может ли кто-нибудь указать мне правильное направление?