NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: VBA excel - runtime error 5

V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Lada
Člen
Avatar
Lada:24.9.2015 15:09

Ahoj zasílám zdroják ve VBA, který používám v excelu. Při spuštění mi to dá chybu runtime error 5 invalid procedure call or argument. Řádek s chybou je zvýrazněný. Díky za pomoc.
Cílem makra je, aby se vždy po otevření souboru označil poslední datum v průřezu kontingenční tabulky.

Sub GroundHogDay()


Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = False
ManualUpdate = False
Application.Calculation = xlCalculationManual

Dim today As Date
today = Now
Dim todayString As String
todayString = Format$(today, "dd.mm.yyyy")


Dim Item As SlicerItem


ThisWorkbook.SlicerCaches("Prùøez_ProcessingDate").ClearManualFilter
With ActiveWorkbook.SlicerCaches("Prùøez_ProcessingDate")
'earliest data available in the data
**.SlicerItems("16.2.2015").Selected = True** --------*Tady se chyba objeví.*
End With

For Each Item In ThisWorkbook.SlicerCaches("Prùøez_ProcessingDate").SlicerItems


If Item.Name = todayString Then
Item.Selected = True
Else
Item.Selected = False
End If
Next Item

ThisWorkbook.SlicerCaches("Prùøez_ProcessingDate1").ClearManualFilter
With ActiveWorkbook.SlicerCaches("Prùøez_ProcessingDate1")
'earliest data available in the data
.SlicerItems("16.2.2015").Selected = True
End With

For Each Item In ThisWorkbook.SlicerCaches("Prùøez_ProcessingDate1").SlicerItems

If Item.Name = todayString Then
Item.Selected = True
Else
Item.Selected = False
End If
Next Item


ThisWorkbook.SlicerCaches("Prùøez_DatExp").ClearManualFilter
With ActiveWorkbook.SlicerCaches("Prùøez_DatExp")
'earliest data available in the data
.SlicerItems("16.2.2015").Selected = True
End With

For Each Item In ThisWorkbook.SlicerCaches("Prùøez_DatExp").SlicerItems

If Item.Name = todayString Then
Item.Selected = True
Else
Item.Selected = False
End If
Next Item

Application.ScreenUpdating = True
Application.EnableEvents = True
Application.Calculation = True
ManualUpdate = True
Application.Calculation = xlCalculationAutomatic

ThisWorkbook.RefreshAll

End Sub
 
Odpovědět
24.9.2015 15:09
Avatar
jay
Člen
Avatar
jay:25.9.2015 9:53

Zdarec,
nemohl bys, poskytnout i ten excel (alespon orezanou verzi)?
Potom by se ta chyba líp hledala.

 
Nahoru Odpovědět
25.9.2015 9:53
Avatar
Lada
Člen
Avatar
Lada:25.9.2015 13:37

Bohužel nemůžu to poslat, protože celý soubor mám napojený na SQL server a mám tam spoustu návazností. Nicméně zasílám kód pomocí kterého tahám datum z sql serveru pro ten průřez.

SELECT Cast(ProcessingDate as Datetime) as ProcessingDate,
       [ProcessingDate]
      ,Formopr
      ,[Operation]
      ,[LoginName]
      ,[TypFor]
      ,[FormCount]
   FROM [Pohoda].[dbo].[Prace]
WHERE LoginName IN ( 'Lada' ) AND  TypFor In ( 'OSVC' ) AND ProcessingDate >= dateadd(day,datediff(day,0,GETDATE()),-40)

Mám pocit jestli to není formátem datumu. Ma MSsql serveru je ve formátu yyyy-dd-mm a to dřív fungovalo, ale nyní já jej převádím na dd.mm.yyyy a tam to vyhazuje chybu, to ale neřeší to, proč to tak je.

 
Nahoru Odpovědět
25.9.2015 13:37
Avatar
Lada
Člen
Avatar
Odpovídá na Lada
Lada:29.9.2015 14:32

Tak jsem to vyřešil nebo spíš našel návod. Zde uvádím:
https://social.msdn.microsoft.com/…o-select-vba?…

 
Nahoru Odpovědět
29.9.2015 14:32
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.