是否可以使用HTTPS访问需要使用Excel登录/密码的网页?好吧,是和否。这是交易,为什么它不是那么直截了当。
根据惯例,HTTPS是所谓SSL(安全套接字层)的标识符。这实际上与密码或登录没有任何关系。SSL所做的是在web客户端和服务器之间建立一个加密连接,这样就不会在这两个“透明”的服务器之间发送任何信息——使用未加密的传输。如果信息包括登录和密码信息,加密传输可以保护他们免受窥探……但加密密码不是一项要求。我使用“按约定”这个短语是因为真正的安全技术是SSL。HTTPS仅向服务器发出客户端计划使用该协议的信号。SSL可以以多种其他方式使用。
因此…如果您的计算机向使用SSL的服务器发送URL,并且该URL以HTTPS开头,则您的计算机会对服务器说:
“嘿,服务器先生,让我们就这个加密问题握手吧,这样从现在开始我们说的任何话都不会被坏人截获。完成后,请继续将URL地址的页面发送给我。”
服务器将发回用于设置SSL连接的密钥信息。这取决于你的电脑是否真的用它做些什么。
这是理解VBA在Excel中的作用的“关键”(双关语……好吧,索塔的本意)。VBA中的编程必须实际执行下一步,并在客户端实现SSL。
“真正的”web浏览器会自动执行此操作,并在状态行中显示一个小的锁定符号,以显示已完成此操作。但是,如果VBA只是将网页作为文件打开,并将其中的信息读入电子表格中的单元格中(这是一个非常常见的示例),如果没有一些额外的编程,Excel将无法做到这一点。服务器慷慨的握手和建立安全的SSL通信只是被Excel忽略了。
为了证明这一点,让我们使用谷歌Gmail服务(以“https”开头)使用的SSL连接,并编写一个调用代码,以打开该连接,就像打开一个文件一样。
这会像读取简单文件一样读取网页。由于最新版本的Excel将自动导入HTML,因此在执行Open语句后,Gmail页面(减去动态HTML对象)将导入到电子表格中。SSL连接的目标是交换信息,而不仅仅是阅读网页,因此这通常不会让您走得很远。
要做更多的工作,您必须在ExcelVBA程序中使用某种方法来支持SSL协议,也可能支持DHTML。您最好从完整的Visual Basic开始,而不是使用Excel VBA。然后使用诸如Internet传输API WinInet之类的控件,并根据需要调用Excel对象。但是可以直接从Excel VBA程序使用WinInet。
WinInet是WinInet.dll的应用程序编程接口API。它主要用作Internet Explorer的主要组件之一,但您也可以直接从代码中使用它,也可以将其用于HTTPS。编写使用WinInet的代码至少是一项中等难度的任务。一般而言,所涉及的步骤包括:
编写WinInet代码以使用https而不是常规HTTP有两个主要区别:
您还应该记住,交换登录名/密码的功能在逻辑上独立于使用https和SSL加密会话。你可以做一个或另一个,或两者兼而有之。在许多情况下,它们确实是同时发生的,但并不总是如此。而实现WinInet要求并不能自动响应登录/密码请求。例如,如果登录名和密码是web表单的一部分,则在将登录字符串“发布”到服务器之前,您可能必须找出字段的名称并从Excel VBA更新字段。正确响应web服务器的安全性是web浏览器工作的一个重要部分。另一方面,如果需要SSL身份验证,您可以考虑使用Internet Explorer对象从VBA内部登录。
底线是使用https和从Excel VBA程序登录到服务器是可能的,但不要期望在几分钟内编写完成这项工作的代码。
你在使用别人创建的电子表格吗?当您从头开始创建Excel电子表格时,您可以控制每个方面。当别人把它传给你时就不是这样了。 ...
...您可以“记录”并在触摸按钮时再次执行。更高级的例子使用VBA来自动化复杂的过程。 ...
在microsoftexcel中使用宏是实现任务自动化的最佳方法。我们将向您展示如何在Excel 2016中录制宏,以便您可以腾出时间,不再将时间浪费在重复操作上。 ...
... CDO是Windows中使用的消息传递组件,从操作系统的早期版本就开始了。它以前被称为CDONTS,后来随着windows2000和XP的出现,被“windows2000的CDO”所取代。此组件已包含在Microsoft Word或Excel...
...向您展示“开发人员”选项卡的一些实际用途,以及如何使用它们创建更多自定义的Microsoft Office文档。 ...