Tag: vba

如何使用VBA下载文件(没有Internet Explorer)

我需要在Excel中使用VBA从网站下载CSV文件。 服务器还需要validation我的身份,因为这是来自调查服务的数据。 我发现很多使用由VBA控制的Internet Explorer的例子。 然而,这大多是缓慢的解决scheme,大部分也是令人费解的。 更新: 一段时间后,我发现了一个在Excel中使用Microsoft.XMLHTTP对象的漂亮的解决scheme。 我想分享下面的解决scheme,以备将来参考。

获取对其他收件箱的引用

我正在使用Outlook 2007 – 并有我的主邮箱:Tait,Mark 我还添加了另一个邮箱到我的个人资料:采购,请求 两者都显示为Outlook中的顶级文件夹: 邮箱 – 大吉,马克> – 历史 -删除的项目 -Drafts -inbox -垃圾邮件 邮箱 – 采购,请求 – 会谈历史 – 删除的项目 –Drafts –Inbox – 垃圾邮件 我可以使用以下命令获取我的默认收件箱(Tait,Mark)的引用: Set Inbox = ns.GetDefaultFolder(olFolderInbox) 如何在“采购,请求”邮箱中获取对收件箱的引用?

Levenshtein距离VBA

我有Excel数据表,我想要Levenshtein距离。 我已经尝试导出为文本,从脚本(PHP)读入,运行Levenshtein(计算Levenshtein距离),将其保存到Excel中再次。 但是我正在寻找一种方法来编程计算VBA中的Levenshtein距离。 我怎么会这样做呢?

为什么范围工作,但不是单元格?

我试图将一个工作簿中的数据从一个范围分配到另一个范围。 当我使用正常的Range语法来指定目标范围(范围(“A1:B2”))我的代码工作,但如果我尝试使用范围,单元格语法(范围(单元格(1,1),单元格,2)))我的代码不起作用。 我激活目标工作簿(ActiveWorkbook),并在源工作簿(ThisWorkbook)中运行代码。 此代码工作: ActiveWorkbook.Worksheets(1).Range("A1:B2").Value _ = ThisWorkbook.Worksheets(1).Range(Cells(1, 1), Cells(2, 2)).Value 但是这个代码没有: ActiveWorkbook.Worksheets(1).Range(Cells(1, 1), Cells(2, 2)).Value _ = ThisWorkbook.Worksheets(1).Range(Cells(1, 1), Cells(2, 2)).Value 我得到的错误是运行时错误“1004”:应用程序定义或对象定义的错误。 有谁知道为什么使用单元格对象造成我的问题,或者如果有一些其他问题,我不知道?

DoCmd.SetWarnings和CurrentDB.Execute之间有什么区别?

在这个答案的评论中,雷穆写道 CurrentDB.Execute "insert sql here" 比…更好 DoCmd.SetWarnings = 0 DoCmd.RunSQL "insert sql here" 由于Access产生的内置警告。 我试图了解其中的差异。 如果他们都掩盖了错误,为什么第一个比第二个好? 这里有最佳做法吗?

VBA中的multithreading

有没有人知道如何让VBA运行multithreading? 我正在使用Excel。

在Excel VBA中parsingJSON

我在Excel VBA中有相同的问题:parsingJSON对象循环但找不到任何解决scheme。 我的JSON嵌套对象,所以build议像VBJSON和vba-json解决scheme不适合我。 我也修复其中一个正常工作,但由于许多recursion的doProcess函数,结果是一个调用堆栈溢出。 最好的解决scheme似乎是在原始文章中看到的jsonDecode函数。 这是非常快速和高效的有效; 我的对象结构都在JScriptTypeInfotypes的通用VBA对象中。 现在的问题是,我不能确定什么是对象的结构,因此,我不知道将驻留在每个通用对象中的键。 我需要遍历通用的VBA对象来获取键/属性。 如果我的parsingJavaScript函数可能会触发一个VBA函数或子,这将是非常好的。

获得vba的子目录

我想获得一个文件夹中所有子目录的列表。 如果这个工作,我想扩大到recursionfunction。 然而,我最初的方法来获得subdirs失败。 它只是显示一切包括文件: sDir = Dir(sPath, vbDirectory) Do Until LenB(sDir) = 0 Debug.Print sDir sDir = Dir Loop 该列表以“..”和多个文件夹开头,以“.txt”文件结尾。 编辑:我应该补充说,这必须在Word中运行,而不是Excel(许多function在Word中不可用),它是Office 2010。 编辑2: 可以确定使用结果的types iAtt = GetAttr(sPath & sDir) If CBool(iAtt And vbDirectory) Then … End If 但是这给了我新的问题,所以我现在正在使用基于Scripting.FileSystemObject的代码。

从VB代码解除VBProject的保护

我怎样才能从vbmacros解除我的VB项目? 我发现这个代码: Sub UnprotectVBProject(ByRef WB As Workbook, ByVal Password As String) Dim VBProj As Object Set VBProj = WB.VBProject Application.ScreenUpdating = False 'Ne peut procéder si le projet est non-protégé. If VBProj.Protection <> 1 Then Exit Sub Set Application.VBE.ActiveVBProject = VBProj 'Utilisation de "SendKeys" Pour envoyer le mot de passe. SendKeys Password & "~" SendKeys […]

对cricinfo记分卡的htmlparsing

目标 我正在寻找从Cricinfo网站 20/20蟋蟀记分卡数据,理想的CSV格式的数据分析在Excel中 作为一个例子,目前澳大利亚Big Bash 2011/12记分卡可以从 游戏1: http : //www.espncricinfo.com/big-bash-league-2011/engine/match/524915.html 最后一场比赛: http : //www.espncricinfo.com/big-bash-league-2011/engine/match/524935.html 背景 我精通使用VBA(自动化IE或使用XMLHTTP ,然后使用正则expression式)从网站上刮取数据,即从HTML TD和Tr中提取数据 在同一个问题中,发布了一条意见,build议使用HTMLparsing – 我之前没有讨论过这个问题 – 所以我看了一些问题,比如RegEx匹配的开放标签,除了XHTML自包含标签 询问 虽然我可以写一个正则expression式来parsing下面的板球数据,但我希望能够通过htmlparsing来有效地检索这些结果。 请注意,我的偏好是可重复的CSV格式,其中包含: 比赛的date/名字 团队1的名字 输出应该倾倒最多11队的logging(空白logging的球员没有击中,即“没有蝙蝠” ) 队2的名字 输出应该倾倒最多11队的logging(空白logging玩家没有击中) Nirvana对我来说是一个解决scheme,我可以使用VBA或VBscript进行部署,这样我就可以完全自动化我的分析,但我认为我将不得不使用单独的工具进行htmlparsing。 示例站点链接和要提取的数据