Articles of vba

使用VBA从具有SAMLauthentication的网站下载文件

我想build立一个excel vba插件,可以从一个内部网站下载一个excel文件,该文件目前受到SAMLauthentication的保护。 如果我尝试使用Internet Explorer或Google Chrome下载文件,则文件会自动开始下载,而不会显示任何凭据,我认为这是因为浏览器依赖的某种集成Windows身份validation。 如果我尝试下载一个VBA对象,如winhttp.winhttprequest.5.1,我得到一些HTML页面,我认为这是开始SAML身份validation(所以我假设我已经使用的winhttp.winhttprequest.5.1对象不支持SAML身份validation)。 有没有简单的方法来做VBA的SAML身份validation,或者我需要手动编码身份validation步骤?

VBSriptclosures消息混乱

我目前正在学习如何在Visual Basic中编写命令,并决定创build一个简单的closures消息。 代码工作完美:当用户点击“是”closures和“否”,“取消”和“X”buttonclosures消息。 然而,我决定尝试一个恶作剧的消息,以及电脑将closures任何选项被选中。 我运行脚本,但是当我点击'X'图标(我不喜欢closures我的电脑的想法!),我的电脑关机了吗?有没有办法阻止这种情况发生,或者,更好的是有一种方法来灰掉'X'图标,以便用户不能closures消息吗?下面是代码: Option Explicit Dim result result = MsgBox ("Do you want to shutdown?", 3+48,"Warning") Dim objShell Select Case result Case vbYes MsgBox("shuting down …") Set objShell = WScript.CreateObject("WScript.Shell") objShell.Run "C:\WINDOWS\system32\shutdown.exe -r -t 20" Case vbNo MsgBox("shuting down …") Set objShell = WScript.CreateObject("WScript.Shell") objShell.Run "C:\WINDOWS\system32\shutdown.exe -r -t 20" Case vbCancel MsgBox("shuting down […]

从VBA运行command.com或cmd.exe导致MSG命令出现问题

从VBA中打开命令提示符后,我无法使用msg工作,但是从Windows启动cmd.exe或“命令提示符”时已经certificate它可以工作。 我的VBA代码如下: Sub test() Dim str_to_pass As String str_to_pass = "msg" Call Shell("cmd.exe /s /k " & str_to_pass, vbNormalFocus) End Sub 我的结果在命令提示符中:“msg”不被识别为内部或外部命令,…“ 但是,如果我先打开命令提示符或cmd.exe,然后键入“msg”,则会显示如何使用msg的提示符。 那么,如何从vba访问命令提示符的这种可用性,以及为什么这些命令根据如何启动cmd.exe而有所不同?

控制ms访问滚动条的连续forms

我正在实施一个连续的拖放模拟。 基本上它的工作方式是,有一列人在旁边,用户可以将一个人从列表拖动到一个字段(这是一个座位列表,其中有Seat1,Seat2,seat3 …等字段)座位排是新的logging)。 对于基本的拖放function,我使用这个链接的拖放指令,它工作得很好。 现在这里是我的问题 ,要知道用户在哪个logging上移动鼠标我需要计算鼠标的细分部分的位置,所以虽然窗体不向下滚动它工作良好,但是当forms是向下滚动,我首先需要知道表单是多less,这只能通过一个Windows API来完成。 所以我发现www.lebans.com/conformscurcontrol.htm正好有我需要的代码,但是这只能在ms访问的旧版本中工作,在新版本中打破的代码是,他正在检查窗口类名称“滚动条”,并调用GetScrollInfo API,但在新版本中没有名为“滚动条”的类,但还有一个名为NUIScrollbar的类请参阅此处 ,但即使将其更改为此名称,我也不会回来一个有效的滚动条类(LPSCROLLINFO)。 这里是Stephen Lebans的代码 Public Function fGetScrollBarPos(frm As Form) As Long ' Return ScrollBar Thumb position ' for the Vertical Scrollbar attached to the ' Form passed to this Function. Dim hWndSB As Long Dim lngRet As Long Dim sinfo As SCROLLINFO ' Init SCROLLINFO structure sinfo.fMask […]

VBA获得当前机器上可用语言的列表

我有一个多语言Access应用程序,需要访问机器上安装的语言/键盘布局。 我有某些领域接受各种语言的input。 我希望能够在input和退出这些字段时更改活动的语言/键盘布局。 我敢肯定,有这种Windows API的,但我一直没有能够把任何东西了。 我会很高兴任何代码示例,链接或任何可以让我指出正确的方向。

在不同的模块中访问VBA表单专用子公用function

在我的数据库中,我有一个接收SQLstring并返回一个打开的logging集的模块中的公共职能。 这个函数在其他公共子文件中被调用,无论是在这个模块还是在其他模块中。 但是,如果我尝试使用相同的确切代码调用相同的函数,我得到一个编译错误:“错误数量的参数或无效的属性分配。 如果我将正确的代码剪切并粘贴到一个不同的模块作为公共子工作正常。 我怀疑这个问题与命名或隐藏的variables有关。 不幸的是,我一直没能find任何解决办法。 Public Function Query(SQL As String) As ADODB.Recordset Dim cnnConn As ADODB.Connection Dim rsRecord As New ADODB.Recordset Set cnnConn = CurrentProject.Connection rsRecord.ActiveConnection = cnnConn rsRecord.Open SQL Set Query = rsRecord End Function Private Sub Setup() Dim rs As New ADODB.Recordset Dim SQL As String SQL = "Select * FROM [Configuration]" […]

在listboxes vba中获得一致的伪列

我正在replace出现在我们公司的一些旧版本的AutoCAD的VBA代码中的MSFlexgrid的一些实例。 我们决定用列表框取代它们。 但是,我们无法获得一致的间距,直到我们在列表框中创build的“列”(我们只是用pipe道“|”分隔数据)。 由于字体没有一致的字母宽度,因此无法按照我们的预期填充空格。 我应该怎么做,以便列表框文本一致地填充? 我也不是特别在乎我们使用哪种控制,所以随意build议任何其他的标准vb6控制

VBA,FileSystemObject,Windowssorting顺序

我打算在VBA中做一些基本上将从根文件夹开始列出一个或多个目录中的所有文件的东西。 长话短说,我正在使用filesystemobject运行所有的文件夹,然后获取这些文件夹中的所有文件。 移至下一个文件夹等 我遇到的问题是,我需要按照在Windows中find的相同的文件夹sorting顺序将数据吐出(放在一张纸上)。 我知道这不是一个固定的概念,所以这里是一个快速的例子,因为它显示在Windows(对我来说): Windowssorting顺序: FolderTest\000 FolderTest\0 FolderTest\0001 不足为奇的是,当使用FSO时,它以不同的(也许更符合逻辑的)顺序返回子文件夹: FolderTest\0 FolderTest\000 FolderTest\0001 我希望有人可能有一个想法,可以做什么来得到这个,因为它显示在Windows中。 这只是一个很明显的例子,这些文件可以被命名为任何东西,但是在名称中使用字母字符似乎performance得更好。 我不一定会使用FSO,但是我甚至不知道在哪里寻找替代品。 我知道我可以将这些数据集中在一起,但我不确定需要什么样的魔法才能按照“正确”的顺序进行sorting。 对于我所知道的,有一些方法或者什么让这一切变得更好。 提前感谢任何帮助!

你可以在VBScript MsgBox中的button之间进行混合和匹配吗?

我正在学习使用VBScript编写代码,当一个想法触动我时,我正在创build一个消息框:我可以在MsgBox中混合和匹配button,而不是使用vbYesNo ,你可以使用vbYesCancelRetry还是其他的?

你可以用VBA返回磁盘的卷GUID吗?

我遇到了另一个职位VBA打开一个USB设备使用它在wmi中的唯一ID是没有答案的海报显示了通过VBA和WMI获取USB设备的UID的方式,但我不知道如何检索VolumeGUID的WMI VBA。 我想获得DeviceID,如果可能,为特定设备返回VolumeGUID,如果它匹配DeviceID。 这篇文章如何获得卷GUID似乎表明这是可能的,但它是为C ++ 我只是在查询错误的WMI类吗?