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

在范围内的每个单元格周围的边界

我正在试图创build一个简单的函数,将在一定范围内的每个单元格周围添加边框。 使用精彩的录音会产生很多无用的代码。 下面的代码将显示一个“表”的数据,在这个范围的每个单元格周围,我想添加一个边框。 在线我一直无法find一个简单或明确的答案。 所有的帮助非常感谢! Set DT = Sheets("DATA") endRow = DT.Range("F" & Rows.Count).End(xlUp).Row result = 3 For I = 2 To endRow If DT.Cells(I, 6).Value = Range("B1").Value Then Range("A" & result) = DT.Cells(I, 6).Value Range("B" & result) = DT.Cells(I, 1).Value Range("C" & result) = DT.Cells(I, 24).Value Range("D" & result) = DT.Cells(I, 37).Value Range("E" & […]

非networkingSQL注入

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

C#Excel Interop – 调用Worksheet.ExportAsFixedFormat时禁止“发布”对话框

我正在使用Excel Interop打开一个xlsx文件并将其保存为pdf文档。 在调用“ExportAsFixedFileFormat”方法后,会显示一个标题为“发布”的对话框来表示进度。 我怎样才能压制或隐藏这个对话框? 我在其他论坛上看到了一些类似的问题,但没有一个令人满意的解决scheme,但希望有人从那以后解决了这个问题。 码: Application application = new Application(); application.DisplayAlerts = false; // <- No effect application.Visible = false; // <- No effect application.ScreenUpdating = false; // <- No effect application.UserControl = false; // <- No effect application.Workbooks.Open(path, Type.Missing, true); application.DisplayDocumentActionTaskPane = false; // <- No effect application.Worksheets[1].ExportAsFixedFormat(XlFixedFormatType.xlTypePDF, path);

Spreadsheet :: ParseExcel :: Stream丢失其parsing器

我有一个18M Excel电子表格来parsing和Spreadsheet::ParseExcel消耗了太多的内存,我不得不切换到Spreadsheet :: ParseExcel :: Stream 。 它在我的虚拟机上工作正常,它在我们的登台服务器上工作正常,但在我们的生产服务器上(configuration方式相同),我得到这个错误: Can't call method "transfer" on an undefined value at \ lib/Spreadsheet/ParseExcel/Stream/XLS.pm line 31. 这来自以下代码: my ($wb, $idx, $row, $col, $cell); my $tmp = my $handler = sub { ($wb, $idx, $row, $col, $cell) = @_; $parser->transfer($main); XXX here's where we die }; my $tmp_p = $parser = […]

使用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 […]

用于学习c#Excel的资源interop

什么是一些资源,将帮助我快速运行在C#中的Excel互操作?

对于每个循环的反向顺序

关于VB最强大的function之一是能够循环通过集合中的对象而不涉及索引 – for each循环。 我发现它非常有用,只想从集合中删除对象。 在从电子表格中的预定义行(如行)中删除对象时,如果使用索引并从最大值开始并返回第一个值,则代码会更简单。 (使用迭代器的步骤-1)(否则需要一个偏移量,一旦活动的一个被删除,For就会将枚举器指针移回到前一个对象) 例如。 For intA = 10 to 1 step -1 ' … Next 如何使用For Each | 接下来例如。 For each rngCell in Selection.Cells ' … Next 我怎么能循环使用for each循环语法?

将Excel(xls)文件转换为不带GUI的逗号分隔(csv)文件

有没有一种简单的方法来将XLS转换为CSV格式的文件,而无需启动Excel窗口化的应用程序? 我需要用脚本处理一些Excel XLS工作簿。 为此,我需要将xls文件转换为csv文件。 这可以通过Excel应用程序的保存来完成。 但是,我想自动化这(所以,不要打开Excel应用程序窗口)。 如果将工作簿中的第一张工作表转换为CSV格式就足够了。 我只需要在表格中处理数据。 我的系统上安装了Cygwin和Excel,如果有帮助的话。 编辑:好吧,我有一个Perl的工作解决scheme。 更新以供将来由他人使用。 我安装了Spreadsheet :: ParseExcel模块。 然后使用read-excel.pl样本。 我的代码是这个示例代码的轻微变化,如下所示。 #!/usr/bin/perl -w # For each tab (worksheet) in a file (workbook), # spit out columns separated by ",", # and rows separated by c/r. use Spreadsheet::ParseExcel; use strict; my $filename = shift || "Book1.xls"; my $e = new Spreadsheet::ParseExcel; […]