मैं हर XX सेकंड में एक अपडेट चलाने के लिए एक्सेल प्राप्त करने की कोशिश कर रहा हूं।
Sub StartTesting()
Call RunAll_ISP 'this call works
End Sub
Sub macro_timer() 'This sub schedules next run in XX seconds.
Dim ScanInterval
ScanInterval = Format(ThisWorkbook.Sheets("Configuration").Range("B5").Value, "hh:mm:ss")
Application.OnTime Now + TimeValue(ScanInterval), "RunAll_ISP", Schedule:=True ' !this macro call throws error!
End Sub
अगर मैं Start_testing मैक्रो चलाता हूं, तो कॉल काम करता है। यदि मैं macro_timer मैक्रो चलाता हूं, तो यह वांछित संख्या में सेकंड तक प्रतीक्षा करता है, और फिर इस त्रुटि को फेंकता है:
मैक्रो "C:\location_of_file\filename.xlsm'!RunAll_ISP' नहीं चला सकता। मैक्रो इस कार्यपुस्तिका में उपलब्ध नहीं हो सकता है या सभी मैक्रोज़ अक्षम हो सकते हैं
ट्रस्ट केंद्र में मैक्रोज़ की सेटिंग "VBA मैक्रोज़ सक्षम करें" पर सेट हैं
मैं क्या गलत कर रहा हूं?
1 उत्तर
आपकी समस्या का पुनरुत्पादन नहीं किया जा सकता है। यह सरल उदाहरण काम करता है। इसलिए चूंकि आपकी प्रक्रिया StartTesting
ने काम किया है, इसका मतलब है कि मैक्रोज़ निश्चित रूप से सक्षम हैं, इसलिए एकमात्र विकल्प बचा है कि आपका मैक्रो RunAll_ISP
मौजूद नहीं है (या गलत नाम दिया गया है)।
Option Explicit
Public Sub RunAll_ISP()
MsgBox "I run"
End Sub
Public Sub CreateTimer()
Application.OnTime Now + TimeValue("00:00:05"), "RunAll_ISP", Schedule:=True
End Sub
ThisWorkbook
में डाला है न कि Module
में! इसके अलावा मैंने अपनी पहली टिप्पणी में पूछा कि कोड को एक मानक (गैर वर्ग) मॉड्यूल में डालने की जरूरत है। तो एक मॉड्यूल जोड़ें और कोड को वहां ले जाएं और यह काम करेगा।
संबंधित सवाल
नए सवाल
excel
केवल एक्सेल ऑब्जेक्ट्स या फ़ाइलों, या जटिल फॉर्मूला विकास के खिलाफ प्रोग्रामिंग पर प्रश्नों के लिए। यदि आप लागू हो तो आप Excel टैग को VBA, VSTO, C #, VB.NET, PowerShell, OLE स्वचालन और अन्य प्रोग्रामिंग संबंधी टैग और प्रश्नों के साथ जोड़ सकते हैं। सुपर उपयोगकर्ता पर एकल कार्यपत्रक कार्यों के लिए एमएस एक्सेल के बारे में सामान्य सहायता उपलब्ध है।
RunAll_ISP
प्रक्रिया कहाँ स्थित है? क्या यह एक मानक मॉड्यूल में है? क्या इसेPublic
घोषित किया गया है?