Tag: 散列

防止在Excel中显示散列符号(#),而不更改单元格的格式或宽度

我有以下Excel VBA代码: Sheet1.Columns.ColumnWidth = 8.14 Sheet1.Rows.EntireRow.RowHeight = Sheet1.Cells(1).Width Sheet1.Cells.WrapText = True Sheet1.Cells.NumberFormat = "F0 P0 C0" & vbLf & "00 00 00" Sheet1.Cells.Value = 123456789 前两行使我的表格中的单元格为8.14个水平点的完美平方,下面的行旨在使每个单元格看起来像这样(也就是在同一个单元格中的可视“分离”部分中显示9位数字): F1 P2 C3 45 67 89 问题是,由于它的感知长度,Excel取代了我的数字(它应该完全适合于在两行上的8.14磅大小的单元格,因为它是用字符包装的),因为它的感知长度 – 我不想这样做。 有没有办法,通过Excel设置或VBA代码,以防止这种自动行为,而不改变单元格格式为“一般”或“文本”,或增加单元格的宽度? 现在我已经看到过这个问题,但是所有的答案都提到了改变单元格的格式或大小,我不能这样做,原因有两个: 这个表格被认为是一个或多或less的地理“地图”,其中每个单元格都是该地图上的一个点,所以很自然地,我需要在Excel的可见部分中显示尽可能多的“点”。 如果我使单元格(方块)变大,我几乎不能将10×4的网格放入可见部分,以100%的缩放比例 – 因为我必须将单元格先前的大小加倍到124像素,以使Excel显示我的编号不变 如果我将格式更改为“文本”(akastring单元格值),则我的Excel文件变得很大(约1MB),并且几乎不可用,因为地图大约为255×128“点”。 与相同数量的“文本”/string格式化的单元相比,255×128数字格式的单元工作得更快 如果我将格式更改为“常规”或多或less与上述相同,再加上我不能使用自定义格式来“分隔”我的数字部分,如我的示例所示(是的,这是预期的外观) 。 编辑:虽然检查http://datapigtechnologies.com/blog/index.php/forcing-carriage-return-in-custom-date-format/我发现从某个戴夫(信贷给他),这也是解决scheme对我的问题: 如果您尝试缩小列宽,您会注意到在您(或我)认为您应该看到之前您会看到####的方式。 但是稍微改变就可以解决这个问题。 在格式单元格对话框的alignment选项卡上,closures包裹文本(如果打开)。 打开“缩小到适合”,然后打开包装文本。 我试了一下,它的工作! 这个VBA代码同样简单 – 在我的初始代码之后添加下面的代码来实现: Sheet1.Cells.WrapText […]

inputExcel密码时比较哈希

这是我的问题: 用户在程序的“选项”部分input密码。 密码被散列(MD5)并存储在registry中。 运行该程序,创buildExcel电子表格,并使用存储在registry中的散列值对密码进行保护。 用户打开电子表格,并提示input密码。 用户input密码,但无论如何都会失败。 它失败的原因是因为用户以明文input密码,但函数将它与一个散列值进行比较,这显然是错误的。 如何散列在访问电子表格时input的Excel密码,以便将其与registry中存储的散列进行比较? 任何想法解决这个问题也将不胜感激。 我正在使用Excel Interop在C#中编写… 谢谢… 伍迪

无法访问Perl循环中的哈希查找表

我正在写一个比较两个Excel文件的数据的Perl脚本。 我目前正在采取一个Excel文件的两列,并存储在一个哈希。 我使用的数据是电子邮件地址,这个值只是Excel表格中的另一个值(不重要)。 我只是试图将所有的电子邮件存储为散列键,以便我可以遍历另一个('删除')excel文件,并查看电子邮件是否存在于原始成员表中。 我的意图是这样的: 1)创build哈希和查找数组: my %members_list; foreach my $row (2..$MembersLastRow){ $members_list{lc($Members->Cells($row,1)->{'Value'})} = lc($Members->Cells($row,2)->{'Value'}); } my @removals_list; foreach my $row (2..$RemovalsLastRow) { push(@removals_list, lc($Removals->Cells($row,1)->{'Value'})); } 2)遍历查找数组并检查哈希中是否存在: foreach my $key (sort @removals_list) { print $key; if($members_list{$key}){ print " – MATCH!"; } print "\n"; } 问题是,当我尝试运行这个,从来没有任何匹配。 删除列表中的所有元素都应该存储在members_list哈希中。 我已经尝试打印$ members_list {$ key}到屏幕上,然后出现“未初始化的使用”等等等等等等。 这几天我一直在为此奋斗,任何帮助都不胜感激。 这是我使用的代码的整个页面! use strict; use […]

VBA:在Excel中创build会话持久对象(散列)

在VBA函数(UDF)中可以创build一个具有全局范围的对象吗? 即超越function的运行时间坚持? 我想把它粘在一个散列中,并且可以传递给其他函数。 我知道你可以在c#/ c ++ dll中做到这一点。 动机是一个沉重的处理,我不想重复数百个函数调用:我想caching结果,所以我只需要做一次。 假设我有一个在单元格A1中构build结果对象的UDF: =CreateResultsObject(arg1, arg2, arg3…) 该函数执行繁重的工作,并返回一个唯一的IDstring(存储在持久散列中的对象的键)。 单元格A1现在包含这个string值,然后我可以传递给其他函数:然后他们可以使用密钥访问散列中的caching对象。 这可能吗? 如果这样怎么样?