Tag: excel 2007

从Excel VBA UDF中调用时,Range.Precedents返回范围而不是其先例。 有没有解决方法?

我有这个VBAfunction: Public Function testPrec(target As Range) As String testPrec = target.Precedents.Address(External:=False) End Function 在单元格C11中,我有这个公式: =C6+C8 如果我从即时窗口调用testPrec ,它工作得很好: ?testPrec([c11]) $C$6,$C$8 编辑:它也工作正常,如果从非UDFmacros子调用。 这个exception是UDF的情况。 如果我从工作表中调用它作为UDF: =testPrec(C11) 我刚回来“$ C $ 11”。 有谁知道发生了什么事情,甚至更好的如何从UDF调用中获得实际的先例? (我正在使用Excel 2007)

在excel中将一个string写入一个单元格

我试图写一个值到“A1”单元格,但是得到以下错误: 应用程序定义或对象定义的错误“1004” 我在网上尝试了很多解决scheme,但都没有工作。 我使用的是Excel 2007,文件扩展名是.xlsm。 我的代码如下: Sub varchanger() On Error GoTo Whoa Dim TxtRng As Range Worksheets("Game").Activate ActiveSheet.Unprotect Set TxtRng = ActiveWorkbook.Sheets("Game").Cells(1, 1) TxtRng.Value = "SubTotal" 'Worksheets("Game").Range("A1") = "Asdf" LetsContinue: Exit Sub Whoa: MsgBox Err.number Resume LetsContinue End Sub 编辑:我得到错误后,如果我点击警告图标,然后select显示计算步骤其正常工作

函数,它需要address()并给出值

我想让一个细胞等于它上面的细胞。 当我写 =address(row()-1;column()) 它只是写上面的单元格的名称(例如对于B2它写$ B $ 1) 有input地址和放置值的函数吗?

Excel(2007)VBA – 。带有引号的公式

我昨天试图把下面的代码放到一个程序中。 VBA称错误。 我认为这是因为公式内的双引号。 我GOOGLE了,我发现的所有结果只是给公式的基础,但没有解释如何绕过内部报价。 (之前有一个With语句,Pivot是一个工作表名字) .Range("A2").Formula = "=IF(Pivot!A5="",A1,Pivot!A5)" 任何帮助深表感谢。 谢谢!

Excel应用程序的体系结构

经过10年的编程,我发现自己在Excel 2007中创build我的第一个Excel应用程序是一项艰巨的任务。我之前在MS Access中编写过VBA,所以这对我来说不是一个真正的技术挑战,但是它是“范式”我敢说。 现在,我必须实现一个Excel应用程序,与SQLServer交谈(在我创build的专用数据库上),典型的CRUD东西,但是我不能在任何书上阅读(Excel,Excel Power Programming等)。应该构造应用程序。 我可以给列指定名称,并在将数据发送回SQLServer时将它们用作数据库列 当我检索回数据的时候,例如检索一个电子表格应用程序,例如检索ID,Description(隐藏ID在一个列中并显示Description),或者我应该只使用描述来存储非规范化的数据到SQLServer表中,使他们相当于服务器端的Excel工作表? 如果我想使用像LookupTable(ID,国家)规范化的数据,我应该存储ID,国家信息在一个范围内,如果是这样,我如何强制用户从该范围(ID,国家)一个合适的combobox? 当我从SQLServer中检索数据时,我应该将它build模为一个ADODB.Recordset(例如通过调用一个视图或一个存储过程)并将其复制到Sheet中,以确保Recordset中字段的顺序与Sheet中的相同或者,还有更好的方法? 我相信有很多人了解我的情况,因为他们一直在我的鞋子里,请帮助我跳跃,这将有助于我了解电子表格应用程序的世界。 指向networking资源也非常受欢迎。 谢谢。

数据透视表显示值,而不是数值的总和

我想显示一个数据透视表,并为它显示实际值,每行一个,而不是数值的总和。 例如 Name Jan Feb Mar Apr Bob 12 10 4 3 5 James 2 6 8 1 15 等等 我的起点是有三列: Name , Value和Month 。 这可能不需要做一些完全不同的事情吗?

如何检查Excel-VBA中是否存在某些图纸?

有谁知道如何检查某些工作表是否存在或不在Excel文档中使用Excel VBA?

将事件处理程序分配给在VBA中dynamic创build的用户表单上的控件

我发现互联网上的许多资源几乎做我想做的,但不完全。我有一个命名范围“daylist”。 对于dayList中的每一天,我想在用户窗体上创build一个button来运行当天的macros。 我能够dynamic添加button,但不知道如何将daycell.text从命名范围,button,事件处理程序传递到macros:S Heres我必须创build用户窗体的代码: Sub addLabel() ReadingsLauncher.Show vbModeless Dim theLabel As Object Dim labelCounter As Long Dim daycell As Range Dim btn As CommandButton Dim btnCaption As String For Each daycell In Range("daylist") btnCaption = daycell.Text Set theLabel = ReadingsLauncher.Controls.Add("Forms.Label.1", btnCaption, True) With theLabel .Caption = btnCaption .Left = 10 .Width = 50 .Top = […]

防止Excel退出

我缺less一个Excel.Application.Quit或一个Excel.Application.BeforeQuit事件。 有没有人知道模拟这些事件的解决方法? 我通过COM Interop从C#WinForms应用程序访问Excel。 给定一个Excel.Application对象,我怎么能: 最好防止Excel退出? 如果这是不可能的,我怎么能至less注意到 Excel退出? 请注意:因为我有一个Excel的应用程序的COM引用,当用户退出 Excel时, Excel进程不会退出 。 虽然这听起来是矛盾的,但事实就是如此。 通过“退出”,我的意思是用户点击窗口右上angular的“退出”或“十字button”。 窗口closures,文件被卸载,加载项被卸载,以及Excel除了我不知道的东西之外的任何东西。 但是我仍然可以使用Application对象来“恢复”进程并使Excel重新可见,尽pipe加载项然后丢失了,而且我还不确定尚未定义的状态是什么。 为了摆脱这个问题,我希望在一开始就取消退出(如果存在的话,可以考虑BeforeQuit Cancel = true ),或者至less在Excel退出时通知,这样我就可以释放COM对象使stream程真正退出,下一次我再次需要Excel时,我会知道我需要先启动它。 不幸的是,这是一个恶性循环: 只要Excel运行,我需要COM对象 。 所以我不能在 Excel退出前处理它们。 另一方面,只要COM对象存在,即使Excel假装退出,进程也不会退出,所以我不能等待进程退出事件或类似事件。 我有一种令人不快的感觉,就是我要把头撞到一堵砖墙上。

在Excel数据透视表中使用QUARTILE按子群汇总数据

我在Excel电子表格中有一大堆数据,基本上可以被认为是属于不同子群体的个体的值的集合: IndivID SubPopID Value 1 A 33.56 2 E 42.31 3 D 16.35 4 A 50.59 5 F 80.63 … 这张桌子上有超过1万人,还有超过50个人口。 我想计算每个亚群的5号总结(Min,Q1,Median,Q3,Max)。 在数据透视表中,Min和Max很容易。 但Q1,Q2(中位数)和Q3似乎不可能。 题 有什么办法来计算Excel中的数据透视表中的每个子群体的四分位数? 答案应该是这样的: SubPopID Min Q1 Q2 Q3 Max A 3.23 12.06 20.35 28.29 50.59 BC …