नाम से संदर्भित करता है मैं वीबीए के साथ एक एमएस एक्सेल 2013 टूल विकसित कर रहा हूं जिसमें क्वेरीटेबल्स का उपयोग शामिल है। मुझे लगता है कि एक असुविधा मौजूदा एक्सेल वर्कशीट के भीतर क्वेरीबेल एक्सेस कर रही है। वर्तमान में, एक क्वेरी तालिका तक पहुंचने के लिए मुझे एकमात्र विधि मिल सकती है पूर्णांक अनुक्रमण द्वारा। मैं अवधारणाएक्सेल वीबीए QueryTable ऑब्जेक्ट्स को
Sub RefreshDataQuery()
Dim querySheet As Worksheet
Dim interface As Worksheet
Set querySheet = Worksheets("QTable")
Set interface = Worksheets("Interface")
Dim sh As Worksheet
Dim QT As QueryTable
Dim startTime As Double
Dim endTime As Double
Set QT = querySheet.ListObjects.item(1).QueryTable
startTime = Timer
QT.Refresh
endTime = Timer - startTime
interface.Cells(1, 1).Value = "Elapsed time to run query"
interface.Cells(1, 2).Value = endTime
interface.Cells(1, 3).Value = "Seconds"
End Sub
यह काम करता है लेकिन मैं वास्तव में ऐसा नहीं करना चाहता हूं। अंतिम उत्पाद उपकरण में पांच अलग-अलग क्वेरीबटेबल होंगे। मैं जो चाहता हूं वह एक प्रश्नोत्तरी को इसके नाम से संदर्भित करना है।
क्या अच्छा होगा अगर मैं लाइनों
Set QT = querySheet.ListObjects.items.QueryTable("My Query Table")
कोई सुझाव बहुत सराहना की जाएगी साथ कुछ करने के लिए नीचे दिए गए
Set QT = querySheet.ListObjects.item(1).QueryTable
कोड का अनुवाद कर सकता है।
सेट QT = querySheet.ListObjects.items.QueryTable संकलित नहीं करता है। मुझे ListObjects के लिए एक आइटम प्रॉपर्टी नहीं दिखाई दे रही है। अपने दूसरे सुझाव के लिए, क्यूटी = वर्कशीट ("क्यूटेबल") सेट करें। क्वेरीटेबल्स ("मेरी क्वेरी टेबल"), यह मेरे लिए काम नहीं करता क्योंकि क्यूटेबल पहले से मौजूद था। –
मैंने इसे बदल दिया: 'QT = querySheet.ListObjects.items (1) .QueryTable' जो आपके कोड के समान है। –
आपका क्या मतलब है कि 'वर्कशीट पूर्व-मौजूदा थी?' ... जो स्पष्ट है- क्यूटी का नाम बदलकर जो आपके पास है। आप इस तरह से शीट में क्यूटी की संख्या हमेशा जांच सकते हैं: 'डीबग.प्रिंट वर्कशीट्स ("क्यूटेबल")। QueryTables.Count' और प्रत्येक QT का नाम इस तरह से:' ly है। आप इस तरह से शीट में क्यूटी की संख्या हमेशा जांच सकते हैं: 'डीबग। प्रिंट वर्कशीट्स ("क्यूटेबल")। क्वेरीबटेबल्स (1)। पहले के लिए। –