Tag: excel vba

Excel VBAdate格式

我有一个包含许多date的电子表格。 这些通常以mm/dd/yyyy或mm/dd/yyyy hh:mm 。 问题是date不总是正确的,我想检查,以确保它们是代码中的date。 我原来的想法是使用IsDate检查或CDate但这似乎并没有工作:它仍然返回string,而不是date。 我已经做了一个小实验,表明这些function并不像我期望的那样工作。 方法是: 在单元格A1中input公式=DATE(2013,10,28) 单元格B1公式=A1*1应该等于一个数字(41575) 运行这个小脚本 Sub test() MsgBox ("Start:" & TypeName(ActiveCell.Value) & " " & IsDate(ActiveCell.Value)) ActiveCell.Value = Format(ActiveCell.Value, "mm/dd/yyyy") MsgBox ("After format: " & TypeName(ActiveCell.Value) & " " & IsDate(ActiveCell.Value)) ActiveCell.Value = CDate(ActiveCell.Value) MsgBox ("After Cdate: " & TypeName(ActiveCell.Value) & " " & IsDate(ActiveCell.Value)) End Sub 当脚本启动的单元格是一个types的date和IsDate返回true。 通过Format运行后,它是stringtypes,但IsDate仍然返回true。 […]

如何从.net代码检查是否启用了“信任访问VBA项目对象模型”的Excel应用程序?

如何从.net代码检查是否启用了“ 信任访问VBA项目对象模型 ”的Excel应用程序? 手动我可以从Excel应用程序中检查它 – 文件>选项>信任中心>信任中心设置>macros设置>信任访问VBA项目对象模型

vba将一组单元格作为范围来运行

我得到一组单元格,并在下面的函数中对它们进行一些计算。 如果我将范围(以:符号)作为第一个parameter passing,但是如果我select一些单元格作为其范围( A1, A3, B6, B9 ),则失败。 它只是取得逗号前的第一个单元格作为第一个参数。 但是我想要整个细胞。 我能做什么? (除了使用string传递范围) Function calculateIt(Sessions As Range, Customers As Range) As Single ' calculate them… End Function 还有一件事:是否可以传递一组范围作为参数? 怎么样?

find当前的用户语言

如何在vba程序中告诉当前的用户语言? 我需要用适当的语言来显示表格。

通过vba字典

新vba。 如何将字典对象传递给另一个函数。 Sub aaa(dict As Object) Set dict = CreateObject("Scripting.Dictionary") … process dict End Sub Sub process(dict As Scripting.Dictionary) MsgBox dict.Count End Sub 给出了一个编译错误:用户定义的types没有定义 也, Set dict = CreateObject("Scripting.Dictionary") 作品,但是 Dim dict As New Scripting.Dictionary 给出“用户定义types未定义” 我使用Excel 2010

什么是最快的方法来转换arrays字母数字的每个成员?

最后的最终结果: 我想知道下面的结果是否改变,如果string更长。 我在同一台计算机上运行完全相同的testing,除了每个单元有一个34个字符的随机string,而不是四个。 这是结果: Comintern (Regexp): 136.1 ms brettdj (Regexp): 139.9 ms Slai (Regexp): 158.4 ms *Original Regex: 161.0 ms* Comintern (AN): 170.1 ms Comintern (Hash): 183.6 ms ThunderFrame: 232.9 ms *Original replace: 372.9 ms* *Original InStr: 478.1 ms* CallumDA33: 1218.1 ms 这真正显示了正则expression式的速度 – 使用Regex.replace的所有解决scheme都显着加快,最好的是实现了共产国际。 总之,如果string很长,使用数组,如果它们很短,则使用剪贴板。 如果不确定,最好的结果是使用数组,但是这可能会牺牲短string的一些性能。 最终结果: 非常感谢您的build议,显然我还有很多东西要学。 我昨天一直在想这个,所以我决定在家里重新运行一切。 这是最后的结果,基于将其中的每一个应用到三万四个字符的string。 我家里的电脑是英特尔i7 @ 3.6 GHz,8GB内存,64位Windows […]

Excel选项卡表名称与Visual Basic表名称

看来,Visual Basic不能根据用户修改的工作表名称来引用工作表。 工作表选项卡可以更改其名称,但似乎Visual Basic仍将工作表名称视为Sheet1等,尽pipe工作簿选项卡已被更改为有用的东西。 我有这个: TABname = rng.Worksheet.Name ' Excel sheet TAB name, not VSB Sheetx name. 但我想在Visual Basic例程中使用图表名称。 到目前为止我所能得到的最好的结果是select大小写工作表选项卡与Visual Basic名称,这并不是我的一天。 Visual Basic必须知道Sheet1,Sheet2等名称。 我怎么能得到这些与Excel选项卡名称相关联,以便我不必维护一个查找表,哪个更改与每个新的工作表或工作表选项卡重命名? 提前感谢您的回复。

ActiveSheet.UsedRange.Columns.Count – 8是什么意思?

什么ActiveSheet.UsedRange.Columns.Count – 8在vba中的意思? vba如何知道usedRange?

VBA – 使用数字select列?

我正在寻找这个code的替代品,但使用数字。 我想select5列,起始列是一个variables,然后从中select5列。 Columns("A:E").Select 我如何使用integers来引用列? 像下面的东西? For n = 1 to 5 Columns("n : n + 4") .select do sth next n 谢谢。 Gemmo

使用VBA将Excel工作表保存在当前目录中

我在Excel中创build了一个工作表。 我想将它保存在当前目录中,但不能保存在绝对path中,那么在其他地方执行时,就不会有问题了。 有人可以帮忙吗?