Tag: vba

如何使用VBA使Excel 2007中的单元格透明

我目前有: Range("Z1").Interior.Color = RGB(255, 255, 255) 但是这消灭了细胞的边界。 相反,我只想将单元格的透明度设置为1.0。 文档似乎暗示它不存在(?)。 谢谢!

我怎样才能显示我的Windows用户名在Excel电子表格使用macros?

我正试图在Excel单元格中显示Windows用户名。 我怎样才能做到这一点?

如何从string中find数字?

我需要从stringfind数字。 如何从VBA Excel中的string中查找数字?

Excel VBA – 将文本转换为date?

我有一列date(列A)以yyyy-mm-dd的格式存储为文本,我试图将其转换为date,最终我可以对它们进行查询。 我在这里读了几个主题,尝试了一些build议,但是我什么都不能做。 有人正在使用: Columns("A").Select Selection.NumberFormat = "date" 这改变了单元格的格式,但实际上并没有改变仍然存储为文本的值的格式。 我的理解是,我需要使用CDate()从文本更改值的格式date。 我试过这样的事情: Dim c As Range For Each c In ActiveSheet.UsedRange.columns("A").Cells c.Value = CDate(c.Value) Next c 这给我一个types不匹配的错误。 我想知道是否这是因为我试图将date值保存到一个非date格式的单元格,所以我试着把它与上面的.NumberFormat =“date”结合起来,这也没有工作。 任何build议,将不胜感激。

将工作簿声明为全局variables

我开始编写一个代码,可以适用于多个工作簿,但始终使用相同的参考工作簿。 代码将有许多潜艇,因为我试图避免变暗参数工作簿中的每个子我想声明他们全球。 首先我有: Global Locations As Excel.Workbook Set Locations = Workbooks.Open("M:\My Documents\MSC Thesis\Italy\Merged\locXws.xlsx") 哪给了我: “编译错误:外部程序无效” 一些谷歌search后,我发现了以下代码的地方: Public Const Locations As Excel.Workbook = "Workbooks.Open("M:\My Documents\MSC Thesis\Italy\Merged\locXws.xlsx")" 哪给了我: “编译错误:预期:types名称” 编辑: 使用: Public Const Locations As Excel.Workbook = "Workbooks.Open('M:\My Documents\MSC Thesis\Italy\Merged\locXws.xlsx')" (Workbooks.Open语句内的单引号)导致与使用双引号相同的错误。 谁知道我在做什么错? EDIT2: 我也尝试在“ThisWorkbook”中声明variables,使用下面的答案 : Private Sub Workbook_Open() Dim Locations As Excel.Workbook Dim MergeBook As Excel.Workbook Dim […]

如何在办公室自动更改大小的ActiveX对象?

此线程讨论了我在Excel电子表格中使用ActiveX对象所遇到的问题。 这是一个混乱的阅读,最终没有一个有凝聚力的答案。 问题是100%可重现的: 使用扩展坞时,在电子表格中打开带有ActiveX对象的工作簿 从坞站断开机器,触发解决scheme更改(还有其他原因,我的是一个扩展坞,似乎改变决议导致这一点) 单击一个ActiveX控件 – 他们立即resize和字体更改大小。 字体大小的变化不是.Font.Size参数的函数,而是在问题发生后无法更改的东西,除了不断增加字体大小 唯一看似权威的解决scheme涉及MS补丁(几年前它是一个“修补程序”,尽pipe如此,对于完整部署似乎不实用)和registry编辑,这对我的使用情况是不实际的。 我正在寻找一种方法来: 防止发生这种变化 find最好的工作 网上对这个问题缺乏权威性的信息。 我打算张贴我的工作,但是,它甚至不理想,我更喜欢更好的解决scheme。

如何在Excel VBA监视窗口中监视字典中的值?

我通过dict As New Dictionary词典在Excel VBA中使用dict As New Dictionary (并添加对脚本运行时的引用)。 当我在debugging过程中试图监视这些内容时,我只能看到字典中的键,而不是每个键的相应值。 有没有办法看到这个价值呢? 这将使debugging更容易对我来说。 编辑:根据你的答案,有没有简单的解决scheme,但我可以做到以下几点。 使用全局variablesDim d_obj As Object并持续监视它,每当我需要查找一个字典的值时,我在即时窗口中键入Set d_obj(key) = … ,我将能够看到值监视器窗口。 另外我可以做的是编写一个函数,它接受一个字典并将其作为列表返回,并在直接窗口中同样使用这个函数。 Thx给所有人!

ADO和DAO之间的区别

这不是一个关于哪个更好的问题,而是关于他们为什么在function上有所不同的问题。 我遇到的问题已经得到处理,但我很好奇为什么这种行为正在发生。 背景 – 使用Excel vba从Access数据库中提取数据。 当用户点击一个button时,一个logging集从Access中被取出,并将各种数据填充到电子表格中。 然后,从另一个查询中提取另一个logging集以填充电子表格的另一部分。 ADO做了什么 – ADO非常适合我的第一个logging集。 但是,我的第二个logging集在Access中查询,运行,并不返回任何行。 如果我在Access中运行这个查询,它会打开(大约3到4秒之后)。 这个查询有多个连接,计算项目,限制和可能的联盟查询(我尝试了很多不同的方式,有/没有联盟等)。 我试着closures并重新打开ado连接。 我试着改变超时值,我甚至使用ADO命令testing了对这个数据的表查询,然后从表中取出(这个工作的方式,但不是最好的情况,因为数据不断变化,而且我不希望每次有人使用此工具时都要运行make table查询)。 所以,我把第二个数据拉到DAO了,看哪,它的工作。 第一个数据是ADO(我通常更喜欢使用),但是现在考虑将其改为DAO,因为我宁愿在代码中使用一种数据访问方法。 那么,有人可以向我解释为什么ADO不会在一个情况下拉取数据,但DAO会? 再一次,这纯粹是为了信息的目的。

我可以让Excel滚动顺利,而不使用中键?

我必须与恶梦的Excel文件工作。 (我没有创build它们,我只需要与他们合作)。 他们是如此之大(超过50大列和100大行),那么我必须向上/向下滚动,并使用“<”和“>”button左右滚动。 当我滚动时,Excel总是跳转到下一列或行。 这让我疯狂! 我可以开发一个插件或插件,使Excel只需滚动平滑,就像浏览器一样吗? 如果是这样,请给我一些资源或只是一些关键字,以了解如何做到这一点。

Excel正在计算一个带有VBA函数的公式作为错误,除非它被重新input

我有一个简单的if语句在工作表中设置if条件是VBA用户定义函数: Function CellIsFormula(ByRef rng) CellIsFormula = rng(1).HasFormula End Function 这个function似乎工作正常: 但由于某种原因,我不明白,单元格正在评估一个错误。 更糟糕的是,在评估公式时,excel将错误归因于不会产生错误的计算步骤: 最重要的是,如果我简单地重新input公式,或强制重新计算( Ctrl + Alt + F9 ),那么这个公式没有问题! 我已经尝试通过将Application.Volatile添加到函数代码中来使公式volatile,但是它没有改变任何东西。 其他方法刷新计算,如设置计算手动,然后回到自动,隐藏“重新计算表”,或者只是使用F9或Ctrl + F9不起作用,只有重新input公式或Ctrl + Alt + F9将导致函数重新正确计算。 更改if语句中引用的单元格之一不会解决问题, 但更改由“CellIsFormula”函数引用的单元格确实解决了该问题。 每次单张被重新打开,但错误又回来了。