Tag: vba

以定义的缩放级别设置所有的Excel工作表

我有超过二十张Excel工作簿(文件)。 是否有一些代码片段或我可以申请/使用的命令,以便所有表可以重置,让我们说85%缩放级别?

Excel / VB函数中的错误:“需要常量expression式”

我是VB新手,我很难做一些非常简单的事情。 我试图做一个n + 1长度的数组,当我运行下面的代码时,我总是得到“所需的常量expression式” Function binomial(n As Integer, p As Double) Dim probabilities(0 To n) As Double End Function 我明白用于构build数组的参数必须是常量,但是我是否从函数的参数创build了一个? 先谢谢你

从命令行使用VBScript从外部Excel运行Excelmacros

我试图从Excel文件之外运行Excelmacros。 我目前使用从命令行运行的“.vbs”文件,但它一直告诉我无法findmacros。 这是我正在尝试使用的脚本 Set objExcel = CreateObject("Excel.Application") Set objWorkbook = objExcel.Workbooks.Open("test.xls") objExcel.Application.Visible = True objExcel.Workbooks.Add objExcel.Cells(1, 1).Value = "Test value" objExcel.Application.Run "Macro.TestMacro()" objExcel.ActiveWorkbook.Close objExcel.Application.Quit WScript.Echo "Finished." WScript.Quit 这里是我试图访问的macros: Sub TestMacro() 'first set a string which contains the path to the file you want to create. 'this example creates one and stores it in the root […]

如何在VBA中恢复默认情况下的variables(Excel 2010)?

在某些时候,我不小心命名了一个variablesrange (全部小写),从那时起,Visual Basic for Applications编辑器拒绝使用Range (Pascal-cased)。 它会自动纠正它为小写。 我怎样才能重置它的“大脑”来忘记我过去的犯罪呢? 注意:我尝试了全局replace,但是当我编辑任何一行代码时,它再次进行了重新更正。 很明显,这是一个非常小的化妆品问题,但是每当我inputRange都会看到R发软。

工作表类的ShowAllData方法失败

我注意到,当有一个自动filter已经打开我的VBA脚本不起作用。 任何想法,为什么这是? wbk.Activate Set Criteria = Sheets("Sheet1").Cells(i, 1) Set rng = Sheets("Sheet1").Range(Cells(i, 2), Cells(i, 4)) wb.Activate If ActiveSheet.AutoFilterMode Then ActiveSheet.ShowAllData 'remove autofilter, but it crashes on this line Selection.AutoFilter Range("$A$1:$BM$204").AutoFilter Field:=2, Criteria1:=Criteria.Value rng.Copy Range("$BC$2:$BE$204").SpecialCells(xlCellTypeVisible).PasteSpecial 非常感谢

VBA Excel按特定列sorting范围

我有一个表可以包含任意数量的行: 正如我所说,它可以包含1或∞行。 我想通过列B中的Date单元格来sorting范围A3:D∞。我该怎么做? 问题是我不知道如何从A3select到最后一行。 我认为循环到最后一行不是一个正确的方法。 我到目前为止,它看起来像正确的,但范围是硬编码。 我如何摆脱范围的硬编码? Range("A3:D8").Sort key1:=Range("B3:B8"), _ order1:=xlAscending, Header:=xlNo

Excel VBA密码通过hex编辑器

过去我多次使用“hex编辑器修改DPB到DPx”来绕过旧的Excel VBA项目(.xls)上的VBA项目安全性,所以我一定知道该怎么做,并知道我可以做到这一点。 不过,我昨天刚试过,发现它不再起作用。 我尝试使用Excel 2011(Mac)和Excel 2003(Windows),在这两种情况下,我得到了相同的行为; 打开VBA编辑器给出了一个消息,说该项目已经损坏,该项目将被删除。 然后,VBA编辑器打开,当然,所有的VBA都从模块和工作表中除去。 我已经尝试了这种方法: 有没有办法破解Excel VBA项目的密码? (即创build一个带有已知密码的电子表格,然后在相关字段中进行复制) 但是,发现在我的“虚拟”电子表格上创build的“GC”键的长度比我希望访问的电子表格(“目标”)上的“GC”键更短。 我曾经在其他地方看过,如果“目标”键长的话,你可以把“虚拟”键放到相同的长度,但是我没有办法find相反的情况下做什么。 所以 – 我的问题; 有没有人知道,如果一个补丁已经被应用,使“hex编辑器”方法无效? 任何人都可以帮助当假键比目标键更长时该怎么办? 任何人都可以提供任何更新现场到这个问题? 编辑现在解决了这个(在某种程度上)我想我会在这里添加一个总结。 我一直没有能够得到这个在Mac Excel 2011上工作。关于将文件从filname.xlsm更改为fielname.zip并再次返回的结果导致Excel 2011拒绝识别损坏的Excel文件。 我设法通过修改.xlsm文件名到.zip,用hex编辑器编辑vbaproject.bin文件中的DPB = AND GC =值,然后保存在将.zip重命名为xlsm之前.zip文件中。 我使用了Ricko在底部给出的“testing”例子,它和ONE CAVEAT一起工作 – 我必须“填充”我的GC值,使其与我的文件中的原始长度相同。 ORIGINAL: GC="0F0DA36FAF938494849484" NEW: (TEST) GC="BAB816BBF4BCF4BCF4" (from Ricko below) NEW: (TEST) GC="BAB816BBF4BCF4BCF40000" (what i used and what worked)

如何遍历Excel VBA或VSTO 2005中的所有单元格

我需要简单地通过Excel电子表格中的所有单元格,并检查单元格中的值。 单元格可能包含文本,数字或空白。 我不是很熟悉/舒适地使用“范围”的概念。 因此,任何示例代码将不胜感激。 (我曾尝试谷歌,但我发现的代码片段并没有完全做我所需要的) 谢谢。

非networkingSQL注入

似乎有一些关于SQL注入攻击的歇斯底里。 最近在这里 如何根据另一个字段中的查找值返回一个字段中的值 如果我在Excel中创build一个连接到Access数据库的macros,我真的不得不关心SQL注入吗? 这不是在networking上,它在我的办公室使用(你们记得桌面?)。 我不担心我的同事要破坏我。 如果他们足够聪明的做一个SQL注入,是不是足够聪明来破解我的加载项密码,只是改变代码?

使用VBAmacros在工作簿中的Excel表上执行SQL查询

我正在试图做一个Excelmacros将给我在Excel中的以下function: =SQL("SELECT heading_1 FROM Table1 WHERE heading_2='foo'") 允许我使用SQL查询在我的工作簿表中search(甚至插入)数据。 这是我迄今为止所做的: Sub SQL() Dim cn As ADODB.Connection Dim rs As ADODB.Recordset strFile = ThisWorkbook.FullName strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strFile _ & ";Extended Properties=""Excel 12.0;HDR=Yes;IMEX=1"";" Set cn = CreateObject("ADODB.Connection") Set rs = CreateObject("ADODB.Recordset") cn.Open strCon strSQL = "SELECT * FROM [Sheet1$A1:G3]" rs.Open strSQL, cn Debug.Print rs.GetString End […]