Questions tagged «excel»

仅用于针对Excel对象或文件进行编程或复杂公式开发的问题。您可以将Excel标记与VBA,VSTO,C#,VB.NET,PowerShell,OLE自动化以及其他与编程相关的标记和问题相结合(如果适用)。超级用户可以获得有关MS Excel单个工作表功能的常规帮助。


5
如何在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中打开此文件时,我的转义未得到遵守。工作表上会出现语音标记,并且逗号引起新的列。


7
如何取消更新链接警告?
我正在尝试编写一个可打开许多Excel文件的脚本。我不断收到提示: This workbook contains links to other data sources. 我希望不显示此消息,以便我的脚本可以自动浏览所有工作簿,而无需我Don't Update为每个工作簿单击。目前,我正在使用以下内容: function getWorkbook(bkPath as string) as workbook Application.EnableEvents=False Application.DisplayAlerts=False getWorkbook=Workbooks.Open(bkPath,updatelinks:=0,readonly:=false) end function 但是,该消息仍然出现。我该如何抑制它? 编辑:看来,此消息是针对具有断开链接的工作簿的;我没有看到此This workbook contains one or more links that cannot be updated消息,因为我设置DisplayAlerts为false。这些工作簿已链接到Windows服务器上某个文件夹中的等效文件,因此,从该文件夹中删除匹配文件时(这是我们业务流程的一部分),该链接会中断。链接断开时是否可以抑制警告? 另外,我正在使用Excel 2010。
109 excel  vba 


3
打破While…Wend循环
我正在使用VBA的While ... Wend循环。 Dim count as Integer While True count=count+1 If count = 10 Then ''What should be the statement to break the While...Wend loop? ''Break or Exit While not working EndIf Wend 我不想使用类似`While count <= 10 ... Wend的条件
107 excel  vba  while-loop 

5
什么时候应该使用xlsm或xlsb格式?
由于Excel 2007中,微软已经分裂的经典.xls格式的多种格式(特别是.xlsx,.xlsm,.xlsb)。我毫无疑问地了解.xlsx格式的用途和目的,但是我仍然想知道在创建包含某些VBA的文件时是否应该使用.xlsm或.xlsb格式。 当然,您可以在网上找到一些主题,例如: 在微软答案论坛上 在微软博客是指出在以前的链接(但我分析,直到10 个页面没有找到裁判.xlsb) 来自另一个论坛的主题 从最后一个链接中我了解到的.xlsm是某种XML格式,因此,自定义功能区选项卡需要该格式。 除了格式之间的概念差异(.xlsm基于XML VS .xlsb是二进制文件)之外,使用任何此文件(功能区自定义除外)是否存在实际差异? 使用这些格式中的任何一种时,您是否看到过真正的区别?
106 excel  excel-2007  xlsm  xlsb 

15
如何暂停特定的时间?(Excel / VBA)
我有一个包含以下宏的Excel工作表。我想每秒钟循环一次,但如果我能找到执行此操作的功能,就会感到惊讶。有可能吗 Sub Macro1() ' ' Macro1 Macro ' Do Calculate 'Here I want to wait for one second Loop End Sub
103 excel  vba 

11
使用Excel OleDb在SHEET ORDER中获取工作表名称
我正在使用OleDb从具有很多工作表的excel工作簿中阅读。 我需要阅读工作表名称,但需要按照电子表格中定义的顺序进行操作;所以如果我有一个看起来像这样的文件; |_____|_____|____|____|____|____|____|____|____| |_____|_____|____|____|____|____|____|____|____| |_____|_____|____|____|____|____|____|____|____| \__GERMANY__/\__UK__/\__IRELAND__/ 那我要拿字典 1="GERMANY", 2="UK", 3="IRELAND" 我尝试使用OleDbConnection.GetOleDbSchemaTable(),这会给我提供名称列表,但是会按字母顺序对它们进行排序。alpha排序表示我不知道特定名称对应的工作表编号。所以我得到了; GERMANY, IRELAND, UK 更改了UK和的顺序IRELAND。 我需要对它进行排序的原因是,我必须让用户按名称或索引选择数据范围。他们可以要求“从德国到爱尔兰的所有数据”或“从表1到表3的数据”。 任何想法将不胜感激。 如果我可以使用office互操作类,这将很简单。不幸的是,我不能,因为互操作类在非交互式环境(例如Windows服务和ASP.NET站点)中无法可靠地工作,因此我需要使用OLEDB。
103 c#  excel  oledb  server-side 



3
搜寻Excel自订功能工具提示
这个问题以前曾被问 过,但是每次接受的答案都只是一个辞职,使用Application.MacroOptions(VBA6)(VBA7)提供功能描述,但是该信息实际上并没有作为工具提示出现,因此不能解决我的问题。 目标 我们所有人都希望能够通过任何方式(VBA,VSTO或COM加载项)定义自定义功能,并为用户提供功能及其参数的弹出式/工具提示说明的好处,例如对于每个内置Excel函数,无论是嵌入式还是在编辑栏中都会出现: 对此需求的广泛接受的答案是自定义功能是不可能的,但是我想挑战这一信念。 问题 当前,我所见过的最好的人是定义函数(通常使用上面的MacroOptions调用),以便在打开函数对话框(在公式栏中的fx按钮)时,它们的功能和参数说明如下所示: 如您所见,这是一个具有许多参数的复杂函数。如果用户不了解此“函数参数”对话框以及如何调出对话框,而是仅熟悉Excel的标准工具提示,则他们只会看到公式名称,而没有其他帮助: 他们没有机会正确地提供所需的参数。(不阅读文档,当然,没有用户会这样做。) 现在,高级用户可能知道通过键入Ctrl+ Shift+ A,他们将被授予自动完成的功能参数列表,如下所示: 但是,当然,我们有与上述相同的问题,那就是标准excel用户将只习惯于第一张图片的默认行为,并且可能永远不会学习该功能。 到这一点应该很清楚为什么还不够,我们希望每个内置函数都有什么-内联工具提示,告诉用户如何使用该函数。 戏弄 起初,我可能已经确信,除了本机Excel应用程序功能之外,这根本是不可能的。加载项和VBA是可扩展性功能,此工具提示可能根本无法扩展。但是该理论受到Analysis Toolpak加载项的存在的挑战。当然,它是Microsoft内置的,但是ANALYS32.xll是一个独立的XLL加载项,就像可以在VB,C,C ++和C#中生成的加载项一样。当然,当将此XLL加载到应用程序中时,它提供的功能具有与本机excel函数相同的工具提示: 当然,如果此信息以某种方式编码在此XLL文件中并传递给Excel,是否可以通过我们自己的加载项复制它?我现在要开始对反编译进行一些自我介绍,并看看我是否可以对分析工具库中发生的一切进行逆向工程。 您将如何提供帮助 我几乎可以肯定,我已经研究了所有有关此问题的公开信息。如果有人知道我不知道的事情可能会有所帮助,请随意输入。我对反向工程编译的dll / xlls非常不熟悉,因此,如果有人想弹出打开他们的Analysis32.xll和弄清楚它的自定义函数定义是怎么回事,我不得不承担。否则,我会一直自己研究这个问题,直到碰到所有死胡同,并汇报发现的问题。

12
有没有一种方法可以使用pandas.ExcelWriter自动调整Excel列的宽度?
我被要求生成一些Excel报告。我目前正在大量使用pandas作为数据,所以自然地我想使用pandas.ExcelWriter方法生成这些报告。但是,固定的列宽是一个问题。 到目前为止,我的代码很简单。假设我有一个名为“ df”的数据框: writer = pd.ExcelWriter(excel_file_path, engine='openpyxl') df.to_excel(writer, sheet_name="Summary") 我正在查看pandas代码,但实际上没有看到任何设置列宽的选项。宇宙中是否有技巧可以使列自动调整为数据?还是在事实之后我可以对xlsx文件做一些事情来调整列宽? (我正在使用OpenPyXL库,并生成.xlsx文件-如果有区别的话。) 谢谢。

7
如何使用VBA添加自定义功能区选项卡?
我正在寻找一种在Excel功能区中添加自定义标签的方法,该标签将带有几个按钮。我碰巧有一些资源可以通过Google解决,但所有这些看起来都很晦涩难懂且异常复杂。 快速简便的方法是什么?我希望在VBA加载到Excel中时加载新标签。 更新:我从这里尝试了此示例,但是在最后一条指令上出现“需要对象”错误: Public Sub AddHighlightRibbon() Dim ribbonXml As String ribbonXml = "<mso:customUI xmlns:mso=""http://schemas.microsoft.com/office/2009/07/customui"">" ribbonXml = ribbonXml + " <mso:ribbon>" ribbonXml = ribbonXml + " <mso:qat/>" ribbonXml = ribbonXml + " <mso:tabs>" ribbonXml = ribbonXml + " <mso:tab id=""highlightTab"" label=""Highlight"" insertBeforeQ=""mso:TabFormat"">" ribbonXml = ribbonXml + " <mso:group id=""testGroup"" label=""Test"" autoScale=""true"">" …

11
Apache POI Excel-如何配置要扩展的列?
我Apache POI API用来生成excel spreadsheet输出一些数据。 我面临的问题是在创建和打开电子表格时,列不会展开,因此乍一看,某些长文本(如日期格式的文本)不会显示出来。 我可以双击excel中的列边框以扩大或拖动边框以调整列宽,但是可能会有20多个列,而且每次打开电子表格时,我都不想手动进行此操作:( 我发现了(虽然可能是错误的方法)groupRow(),setColumnGroupCollapsed()也许可以做到这一点,但没有运气。也许我以错误的方式使用它。 示例代码段 Workbook wb = new HSSFWorkbook(); CreationHelper createHelper = wb.getCreationHelper(); //create sheet Sheet sheet = wb.createSheet("masatoSheet"); //not really working yet.... :( //set group for expand/collapse //sheet.groupRow(0, 10); //just random fromRow toRow argument values... //sheet.setColumnGroupCollapsed(0, true); //create row Row row = sheet.createRow((short)0); //put a …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.