Tag: excel vba

迭代VBA词典?

我正在使用MS Runtime脚本库中的Dictionary类来存储标签将要用于报告模板的位置。 有没有办法像在Python中一样迭代该字典中的所有键值对? 我只是想使用键作为行号(这一切都在列A),值将是标签的头。 就像是: For Each key in dict Range("A" & key).Value = dict(key) Next key

Excelmacros:如何获得“yyyy-MM-dd hh:mm:ss”格式的时间戳?

我在Excelmacros中使用DateTime.Now来显示当前的时间戳。 它以“dd-MM-yyyy hh:mm:ss”格式显示时间戳。 相反,如何获得“yyyy-MM-dd hh:mm:ss”格式的时间戳?

从命令行或batch file运行Excelmacros的方法?

我有一个Excel VBAmacros,我需要从batch file访问文件时运行,但不是每次打开它(因此不使用打开的文件事件)。 有没有办法从命令行或batch file运行macros? 我不熟悉这样的命令。 假设一个Windows NT环境。

列名中的Excel列号

如何使用Excelmacros从Excel中的列名获取列号?

将单元格(1,1)转换为“A1”,反之亦然

我正在Excel 2007中工作表生成器上工作。我有一个特定的布局,我必须遵循,我经常不得不基于input格式化单元格。 由于生成器是dynamic的,我必须计算各种范围,合并单元格等。 我怎样才能转换这样的值? Cells(1,1)到A1 ,反之亦然

Exceldate从yyyymmdd转换为mm / dd / yyyy

我一直在寻找关于如何在Excel中做到这一点的一个小时。 我有一个从旧系统创build的Excel文件,我从SQL Server数据库中提取信息,我将input信息返回到SQL Server数据库,并希望date匹配。 我尝试过创build一个自定义格式,但是我不确定我是否做得正确。 我发现了几个地方,他们想以另一种方式将mm/dd/yyyy改为yyyymmdd但是他们没有帮助。 我不熟悉在任何Microsoft产品中使用VBA,否则我相信这将是一个简单的任务。 我有两个单独的列需要更改。 如何格式化(float) yyyymmdd到(Date) mm / dd / yyyy的整个列

标准VBAfunction“找不到项目或库”

所以我不得不在我的电脑上运行别人的excel应用程序,并且在date,格式,hex,中等等标准函数上得到“无法find项目或库”。 一些研究表明,如果我用“VBA”作为这些函数的前缀。 如“VBA.Date”那么它会正常工作。 网页build议它与我的系统上的项目引用有关,而开发人员的系统上它们必须正确。 我将会从别人那里处理一段时间,并将这些应用程序分发给其他许多人,所以我需要了解我需要修复的excel设置有什么问题,或者需要修改哪些内容xls文件,以便它可以在各种系统上运行。 我想避免让每个人都使用“VBA”。 作为一个明确的参考,但如果没有理想的解决scheme,我想这就是我们必须要做的。 我如何制作“VBA”? 隐含在我的项目属性/参考/等? -亚当

Excel range.Rows属性真的有什么用?

好的,我正在为传统的Excel-VBA应用程序完成一个附加项目,并且我再次运行了神秘的range.Rows(?)和worksheet.Rows属性的难题。 有谁知道这些属性真的是什么,他们应该提供给我什么? (注意:所有这些可能也适用于相应的* .Columns属性)。 我真的希望能够使用它是为了返回一系列的行,如下所示: SET rng = wks.Rows(iStartRow, iEndRow) 但我从来没有能够做到这一点,即使智能感知显示了两个参数。 相反,我必须使用其他两种或另外三种技术中的一种。 帮助是非常无用的(对于Office VBA通​​常是这样),并且search“行”并不是很有用,无论我添加了多less其他术语。 我已经能够使用它的唯一的事情是1)作为范围( rng.Rows(i) )返回一行,并且2)返回范围( rng.Rows.Count )中的行的计数。 是吗? 还有没有其他的东西是好的? 澄清:我知道它返回一个范围,并有其他方法来获得一个行的范围。 我所要求的是我们从.Rows()中得到的,我们还没有从.Cells()和.Range()中得到的。 我知道的两件事情是1)返回单行的范围和2)计算范围内的行数的一种更简单的方法。 还有别的事吗?

确定variables的完整types

通过完整的variablestypes ,我的意思是你在即时窗口中获得的那种信息: 我想用VBAdynamic地确定types信息。 函数TypeName()不会做我想做的事情,因为它返回变体的子types ,并且不区分例如保存范围的variablesvariables,保存范围的对象variables和保存范围的范围variables。 作为一个初步的步骤,我写了一个函数来检测一个variables是否传递给它。 它通过利用引用传递语义来工作。 这个代码用它的参数来做事情,只能用一个变体来完成,并且如果传入的variables实际上不是一个变体,会触发一个错误: Function IsVariant(var As Variant) As Boolean Dim temp As Variant Dim isVar As Boolean If IsObject(var) Then Set temp = var Else temp = var End If On Error Resume Next Set var = New Collection var = "test" If Err.Number > 0 Then isVar = False […]

如何禁止更新链接警告?

我正在尝试编写一个脚本来打开许多Excel文件。 我不断收到提示: This workbook contains links to other data sources. 我想保持这个消息不会出现,这样我的脚本就可以自动遍历所有的工作簿,而不必单击每个Don't Update 。 目前我正在使用以下内容: function getWorkbook(bkPath as string) as workbook Application.EnableEvents=False Application.DisplayAlerts=False getWorkbook=Workbooks.Open(bkPath,updatelinks:=0,readonly:=false) end function 不过,这个消息还在出现。 我怎样才能压制它? 编辑:看来,这个消息正在出现工作簿已经断开链接; 我没有看到This workbook contains one or more links that cannot be updated消息的This workbook contains one or more links that cannot be updated因为我将DisplayAlerts设置为false。 工作簿链接到我们的Windows服务器上的文件夹中的等效文件,所以当从该文件夹中删除匹配的文件(这是我们业务stream程的一部分)时,链接将中断。 当链接被破坏时,可以抑制警告吗? 另外,我正在使用Excel 2010。