Entsprechende code von CreateObject in VB.net
ich versuche mich zu binden/verwenden Sie Objekte in vb.net wie excel.Anwendung usw usw.
Ich bin vor allem ein vb6 coder und jetzt verlagern und lernen vb.net.
in vb6 kann ich gut umgehen, indem mithilfe der Funktion createobject
hier ist der vb6-code:
Dim objXLS As Object
Dim objWorkBook As Object
Set objXLS = CreateObject("Excel.Application")
objXLS.Visible = False
Set objWorkBook = objXLS.Workbooks.Open("Excel File Goes Here")
objWorkBook.SaveAs strCurPath & "\Temp.csv", 6
objWorkBook.Close 2
objXLS.Quit
Set objWorkBook = Nothing
Set objXLS = Nothing
habe ich über internet gefunden und unten Lösung für c# aber nicht .net. und ich konnte nicht verwenden Sie die dynamische Art/Befehl mit vb.net.
hier ist der link:
Entsprechende code von CreateObject in C#
es ist auch chaotisch Weg.. aber ich mag zu gehen, mit der einfache Weg (label, die verbindlich oder so)
so, das irgendeiner Weise zu verwenden dynamische Schlüssel, um in vb.net oder was ist das Äquivalent in vb.net?
- Die vergleichbar von VB6
CreateObject
ist...CreateObject
. Sie finden es in derMicrosoft.VisualBasic
namespace. Allerdings sollten Sie fügen Sie einen Verweis auf die MS-Excel-Objekt-Bibliothek, um sicherzustellen, stark typisierte Variablen. - danke sir, aber ich will nicht von Microsoft.VisualBasic-namespace, wie das ist, nicht Sie richtigen Weg zu lernen vb.net richtig. Ich habe bei der Lösung vieler Probleme, ohne, dass der name space und jetzt stecken mit, dass.
- Halleluja! Du bist auf dem richtigen Weg. Gehen Sie zu Projekt - > Verweis hinzufügen > com > Microsoft Excel (version) - Objekt-Bibliothek. Wenn Sie es nicht finden, dann suchen und herunterladen.
- nochmals vielen Dank, sir, aber bitte beachten Sie "Microsoft Excel (version) - Objekt", dass die Frage, warum ich nicht den direkten Bezug, da Benutzer möglicherweise nicht über die gleiche version von office/excel-Bibliothek installiert 🙁 (kann sein das ich mich Irre), aber wie mein code, egal in welcher version-Nutzer auf Ihren PCs installiert?
- Sie scheinen verwirrend
Microsoft.VisualBasic
namespace mitMicrosoft.VisualBasic.Compatibility
namespace. Sie könnte vermeiden, die letztere, sondern die erstere ist die richtige VB enthält viele aktuelle VB-features und Funktionen. Wenn Sie beabsichtigen, um zu vermeiden, dass, Sie könnten auch vermeiden, VB als Sprache im Allgemeinen. - Ohne Verwendung von VB -
CreateObject()
der code ist der gleiche wie in C#. Sie müssen nur passen Sie die syntax und fügen Sie ein paarUsing
s.
Du musst angemeldet sein, um einen Kommentar abzugeben.
VB.Net Weg, keine späte Bindung, wie Sie können, erstellen Sie die Objekte direkt aus der Bibliothek. Reinigen Sie Sie mit der Marshal-Klasse, da es ein COM-Objekt in umgekehrter Reihenfolge.
FinalRealeaseComObject
😉CreateObject
funktionieren würde, ohne es entweder - so Ihre Aussage macht?Mit einer Formatierung Ausnahme, vbscript und VB6-code wird ausgeführt, in VB.NET. Die Ausnahme ist, alle Methoden und Funktionen/subs erfordern Klammern (anstatt nur diejenigen, die einen Wert zurückgeben). Also CreateObject funktioniert VBScript/VB6, und VB.NET. In VB.Net Sie müssen diese Linien zu verwenden, COM,
CreateObject verwendet die IDispatch (aka Automation). Sie brauchen nicht zu wissen, was ein Objekt ist, es zu benutzen.
Anderen option, die für die späte Bindung in VB (sollte man aber ernsthaft überlegen, die nicht-spät-verbindliche Antwort bereits gegeben, statt
Entweder mit CreateObject oder CreateInstance, brauchst du "Option Strict Off".