Tag: excel

在Excel中循环范围的每一行

这是我确信有一个内置函数(以前我可能已经被告知了这个函数)的其中一个,但是我正在抓我的脑袋去记住它。 如何使用Excel VBA遍历多列范围的每一行? 我一直在寻找的所有教程似乎只是提到了一个一维范围的工作…

将列号转换为字母的函数?

有没有人有一个Excel VBA函数可以返回一个数字的列字母? 例如,input100应该返回CV 。

在java中读取Excel表单的更好的API是什么 – JXL或Apache POI

哪两个API更容易读取/写入/编辑excel表单? 这些API是否不支持CSV扩展? 使用JXL for file.xls和file.xlsx,我得到一个exception,如: jxl.read.biff.BiffException: Unable to recognize OLE stream at jxl.read.biff.CompoundFile.<init>(CompoundFile.java:116) at jxl.read.biff.File.<init>(File.java:127) at jxl.Workbook.getWorkbook(Workbook.java:268) at core.ReadXLSheet.contentReading(ReadXLSheet.java:46) at core.ReadXLSheet.init(ReadXLSheet.java:22) at core.ReadXLSheet.main(ReadXLSheet.java:72) 对于.xls和.xlsx扩展名都是如此。 我正在使用的Java版本是:JDK1.6

对Excel自定义函数工具提示的追求

这个问题之前已经被问 过了 ,但是每次被接受的答案都只是使用Application.MacroOptions ( VBA6 )( VBA7 )来提供函数描述的辞职,但是这个信息实际上并没有作为工具提示出现,所以它不能解决我的问题。 目标 我们所希望的是能够以任何方式(VBA,VSTO或COM插件)定义自定义函数,并为用户提供对函数及其参数的popup/工具提示描述的好处,如对于每个内置的Excel函数,都可以内联或在编辑栏中显示: 被广泛接受的这个需求的答案是,它不可能定制function,但是我想挑战这个信念。 问题 目前,我见过的最好的方法是定义函数(通常使用上面的MacroOptions调用),以便在调用函数对话框(公式栏中的fxbutton)时,它们的函数和参数描述如下所示: 正如你所看到的,这是一个复杂的函数,有许多参数。 如果用户不知道这个“函数参数”对话框,以及如何使用它,而只是熟悉Excel的标准工具提示,他们将只能看到公式名称,并没有额外的帮助: 他们没有机会正确提供所需的参数。 (没有阅读文档,这当然是没有用户的。) 现在,高级用户可能知道,通过inputCtrl + Shift + A ,他们将被授予一个自动完成的函数参数列表,如下所示: 但是,当然,我们也遇到了同样的问题,那就是标准的excel用户只会使用第一张图片的默认行为,而且可能从来没有学过这个function。 这一点应该清楚,为什么这是不够的,我们希望每个内置的函数都有 – 内联的工具提示告诉用户如何使用函数。 戏弄 起初,我可能已经确信,除了原生的Excel应用程序function,这是不可能的。 加载项和VBA是可扩展性function,并且此工具提示可能根本无法扩展。 但是,这个理论受到分析工具包加载项存在的挑战。 当然,它是build立在微软的,但ANALYS32.xll是一个独立的XLL插件,就像那些可以在VB,C,C ++和C#中生成的插件一样。 果然,当XLL被加载到应用程序中时,它提供的函数具有与本机Excel函数相同的工具提示: 当然,如果这个信息以某种方式编码在XLL文件中,并传递给Excel,有一种方法可以用我们自己的插件复制它? 现在我正要开始自我反思,看看我是否可以对分析工具箱中正在进行的任何工作进行逆向工程。 你如何帮助 我几乎可以肯定,我已经研究了所有关于这个问题的公开信息。 如果有人知道我不知道这可能对此有帮助,请随时发一声。我对逆向工程编译的dll / xlls非常不熟悉,所以如果有人想popup打开Analysis32.xll的本地副本,弄清楚自定义函数定义是怎么回事,我会非常感激。 否则,我会继续深入研究这个问题,直到我把所有的问题都解决了,然后回报我find的东西。

我应该如何逃避CSV文件中的逗号和语音标记,以便在Excel中工作?

我正在生成一个CSV文件(用逗号而不是制表符分隔)。 我的用户很可能通过双击打开Excel中的CSV文件。 我的数据可能包含逗号和语音标记,所以我按照以下方式转义。 Reference, Title, Description 1, "My little title", "My description, which may contain ""speech marks"" and commas." 2, "My other little title", "My other description, which may also contain ""speech marks"" and commas." 据我所知,一直是这样做的。 这里是我的错误:当我在Excel 2010中打开此文件时,我的转义不受尊重。 语音标记出现在表单上,​​逗号导致新的列。

同时冻结第1行和第A列

我想在Excel 2010中同时“冻结”第1行和第A列。 这可能吗?

停止Excel从更改单元格内容,曾经

我使用卡号,如信用卡和身份证号码。 显然,我们不用卡号进行任何计算。 他们是“文本”。 我将它们格式化为文本,我将它们input为文本。 我知道这是如何工作的。 Excel不关心。 16位数字的卡号将他们的最后一位数字变成了零,变成了科学记数法,我没有告诉Excel做的愚蠢的东西。 我需要做的事情,如从我们目前不完善的networking系统下载的文件中查找/删除单元格中的空格。 系统向我发送16位数字的文件,格式为文本的单元格,但由于错误,最后有空格。 我find/删除所有的空格,我所有的卡号都转换成科学记数法,最后一位数字变为0.他们是文本,他们被格式化为文本,我大喊大叫他们是文本的屏幕,为什么Excel拒绝承认他们是文字? (我宁愿find一种方法来阻止Excel的行动,而不是find一种方法告诉我们的程序员在每个单元格中放一个撇号) 我如何做到这一点,让Excel只是做一些我没有告诉它做的事情? 或者至less阻止它做任何不喜欢的数字。 也许我可以写一个macros,每当它发现“Uhoh我应该改变这个数字到不同的东西! 我会把它的格式设置为文本一千次。 当我尝试用大于15位的数字进行计算时给我一个错误,使我的电脑剧烈爆炸,没关系。 只是停止改变数字。 可能吗? 我有成千上万的数字需要在许多不同的场景中改变。 我只是想阻止它试图帮助。 我不明白为什么这将是困难的。 我有2007年,但其他版本的答案也会很好。

在Excel中显示毫秒

我正试图在Excelmacros中显示毫秒。 我有一列整数,简单地说是以毫秒为单位的时间戳(例如28095200是7:48:15.200 am),我想在它旁边新build一个保持运行平均值的新列,并以“hh:mm :ss.000“格式。 我已经尝试了多种不同的路线,但是我根本无法获得毫秒而不会导致奇怪的事情发生。 这是我现在所拥有的: Dim Cel As Range Set Cel = Range("B1") temp = Application.Average(Range("A1:A2")) / 1000 ms = Round(temp – Int(temp), 2) * 1000 Cel.Value = Strings.Format((temp / 60 / 60 / 24), "hh:mm:ss") _ & "." & Strings.Format(ms, "#000") 出于某种原因,这只在单元格中显示“mm:ss.0”。 然而当我点击单元格时,它会在公式栏中显示“hh:mm:ss”。 为什么在单元格中缺less小时? 此外,另一个奇怪的事情是,如果我把最后一行改为Strings.Format(ms, "#000.") ,那么我会得到“hh:mm:ss.000”。 这就是我想要的,而不是额外的时间。

简单的数据透视表来计算唯一的值

这似乎是一个简单的数据透视表来学习。 我想为我正在分组的特定值计算唯一值。 例如,我有这样的: ABC 123 ABC 123 ABC 123 DEF 456 DEF 567 DEF 456 DEF 456 我想要的是一个数据透视表,告诉我这一点: ABC 1 DEF 2 我创build的简单数据透视表只是给了我这个数(有多less行): ABC 3 DEF 4 但我想要的唯一值的数量。 我真正想要做的是找出第一列中的哪些值在所有行的第二列中都没有相同的值。 换句话说,“ABC”是“好”,“DEF”是“坏” 我相信有一个更简单的方法来做到这一点,但认为我会给数据透视表一个尝试…

Exceldate到string转换

在Excel工作表的单元格中,我有一个Date值,如下所示: 01/01/2010 14:30:00 我想将该date转换为文本,也希望文本看起来像date。 所以01/01/2010 14:30:00的Date值应该看起来像01/01/2010 14:30:00但内部应该是Text。 我如何在Excel中做到这一点?