从1月10日起,我就被困在这条代码行里,我在一封电子邮件中收到了它,我发现我必须学习课程模块,所以我现在开始学习,然后回来询问。代码行是(关键警告:您必须使用VBE中的工具->引用并激活Microsoft WinHTTP Services,Version5.1,早期绑定):
Dim WinHttpReq As Object
Set WinHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1")对于CreateObject,我转到MS并说:创建并返回一个ActiveX对象的引用
现在,据我所知,当我们创建一个引用时,它只针对一个对象,并且这样做(如果我错了,请纠正我):
Dim ThatIKnow as Workbook然后我们像这样实例化它
Set ThatIKnow = Workbooks.Add为什么我们需要CreateObject?
帮助继续说"...of a ActiveX对象“
如果我单击“帮助”( help )上的“ActiveX”,它指出了词汇表:通过自动化接口向其他应用程序或编程工具公开的对象
这句话绝对没告诉我什么。关于ActiveX我只知道这个

我认为...which是ActiveX控件..。(我必须承认,ActiveX对我来说一直是个模糊的词)
现在,在CreateObject("WinHttp.WinHttpRequest.5.1")中,我已经浏览了Web,我找不到合适的MS帮助WinHttp对象和它所做的事情。无论如何,对象浏览器将其作为库,但是F1帮助按钮没有显示任何内容。所以,对象浏览器说它是一个库,我在网上找到了它,称为WinHttp引用,也是一个WinHttp对象。这些是怎么回事?
为了上帝的爱,为什么它被称为"5.1"?我没有找到WinHttpRequest.5.1术语
我并不是想要嚼碎的食物,但任何解决难题的努力都会使整个局面变得更加紧张。任何能帮我破解这行代码的夹子都是帮助的音调。
谢谢收看我的问题
发布于 2014-02-06 19:43:14
我不会讨论早期装订和后期装订之间的区别。你可以在这个KB Article上读到它们。
然而,我要做的是回答你在问题中的所有小问题,例如
CreateObject是什么?
正如我在上面的注释中提到的,CreateObject是一个函数,它在Visual (vb6和vb.net)、(VBA)和VBScript中用于动态创建ActiveX控件或COM对象的实例。
什么是ActiveX控件?
ActiveX控件是一个组件程序对象,可以被许多应用程序重用.建立基于ActiveX控件的Component Object Model (COM)控件的主要技术。通常,ActiveX控件取代了早期的OCX (对象链接和嵌入自定义控件)。
可以在任何识别微软组件对象模型的编程语言中创建ActiveX控件,例如Visual和C++
这些ActiveX控件运行在一个容器中,例如Model,它使用组件对象模型程序接口。事实上,这实际上对我们大家都有帮助。想象一下,每次从零开始为这些控件编写代码!
创建并返回ActiveX对象的引用--意思是。
我来解释一下你引用的内容。
Dim ThatIKnow as Workbook
Set ThatIKnow = Workbooks.AddDim ThatIKnow as Workbook正在做的是告诉运行时环境,我们将创建一个类型为"Workbook“的对象,并在代码中将其引用为"ThatIKnow”。然而,这实际上并没有创建对象,也没有分配任何内存。只有在使用New关键字或任何其他方式(如Createobject )创建对象并对此变量ThatIKnow进行辅助时,才会分配内存。
因此,当我们说Set ThatIKnow = Workbooks.Add或Set oXLApp = CreateObject("Excel.Application")时,我们实际上是在内存中创建对象。
和上帝的爱为什么被称为"5.1"?
这是因为“上帝的爱”,我们从灵长类动物进化而来,而灵长类动物与其他哺乳动物不同。因此,考虑我们这些哺乳动物的X版本:D
是的,Pankaj提到这是版本号是对的。版本号是什么?为什么它很重要?
一个简单的版本控制只是对文档、应用程序、信息收集等的更改的管理。任何新的更改通常都是通过数字或字母代码或混合代码来标识的。
这是有帮助的,因为它让我们知道该文档或应用程序的当前版本。
有关版本控制的进一步阅读,请参阅THIS LINK。
希望我已经回答了你所有的问题?如果没有,那就随便问吧。
发布于 2014-02-06 18:00:01
Dim WinHttpReq As Object
Set WinHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1")几乎和
Dim WinHttpReq As WinHttpRequest
Set WinHttpReq = New WinHttpRequest不同之处在于,使用第一种方法,您不必将库包含在“引用”列表中,但作为支付的代价,您将不会在IDE中获得intllisense提示,因为您的引用是泛型对象。
第二种形式更好。它允许VB检查对象类型,以确保其兼容性,或者将它们作为参数传递。它还提示在键入对象名称时对象具有哪些方法和属性。
https://stackoverflow.com/questions/21609975
复制相似问题