我遇到了我在Excel VBA項目中使用的Recordset問題。我試圖在Recordset中讀取一定範圍,直到現在一直工作。但是這一次我希望得到一個不連貫的範圍內,這在我的情況下,由一個表的列,並給這個範圍內,通過下面的函數記錄Incoherent Range into Recordset
'this is how I set the range
Set SourceRange = ThisWorkbook.Worksheets(1).Range("Tablename[[field1]:[field2]], " & _
"Tablename[[field3]:[field4]], Tablename[[field5]:[field6]]")
'this is the function I set my recordset with
Function GetRecordset(rng As Range)
Dim xlXML As Object
Dim rst As Object
Set rst = CreateObject("ADODB.Recordset")
Set xlXML = CreateObject("MSXML2.DOMDocument")
xlXML.LoadXML Replace(rng.Value(xlRangeValueMSPersistXML), "rs:name="" ", "rs:name=""")
rst.Open xlXML
Set GetRecordset = rst
End Function
當(從@馬丁德雷爾得到它)我通過VBA選擇範圍,這是我想要的,但是當調用getRecordset和後綴將數據從記錄集中複製出來時,我所得到的只是第一個範圍的數據。
由於涉及到一些內部數據,我編輯了變量的名稱。
感謝您的幫助!
嘿,首先我該如何標記你的答案有幫助?我試圖按下「upvote」按鈕,但我得到一個消息,由於我的名聲不到15,所以反饋將被計數,但不公開顯示。其次,我怎樣才能關閉一個線程?我無法找到任何相關信息,或者我只需要用-closed-或類似的東西寫一個答案? 要回到主題... 解決方法肯定會適用於我的情況,但正如您在最後一句中所述,性能將受到影響。我會盡快完成並儘快回覆你。謝謝! – Till
我確實寫了解決方法,性能肯定受到嚴重影響。也許如果我把這個問題描述得更清楚或者更加不同,你可以讓我看到另一條路。基本表有25列(不確定),在這種情況下,我要麼只有20列被讀入記錄集或只有20列被複製出來。我希望你能從中得到更好的理解,可能會幫助我一點。 – Till
請參閱**編輯**以瞭解如何加快速度。不知道有這樣做的好方法。 爲了標記回答的問題,您應該能夠檢查up/downvote按鈕下方的灰色複選標記。 –