标题说的差不多。在 Excel 2007 中使用数据透视表时,是否可以显示发送到 OLAP 源的 MDX?
假设我有一个名为"DataSheet.xls"的Excel文件打开.如何使用c#杀死该Excel文件?
使用以下代码我可以在C#中运行Excel:
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "cmd.exe";
p.Start();
Run Code Online (Sandbox Code Playgroud)
我可以使用任何命令行参数使Excel开始隐藏或最小化吗?
(编辑:尝试过p.StartInfo.WindowStyle并且没有效果.)
我需要在不使用COM的情况下启动Excel ,因为在通过COM启动Excel 时,没有加载任何XLA加载项.
我想应用一些条件格式,其中行的每个单元格与前一行中的单元格进行比较.如果它不同,则突出显示该行.

我正在使用Excel 2007.这甚至可能吗?如果是这样,有人可以向我提供将其应用于整个数据表的步骤吗?
以下是当前数字的示例,以及我希望它们如何格式化:
1 001
65 065
651 651
651001 651.001
651001001 651.001.001
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?它需要是一种格式 而不是公式(这实际上将在SQL查询中的MS Access项目中使用,它接受相同的格式).
我尝试过使用###"."###"."000,但是在前几个例子中它显示了额外的点:
..001
..065
..651
.651.001
651.001.001
Run Code Online (Sandbox Code Playgroud) 我今天遇到了这个有趣的问题.我在另一个循环中有一个循环,它们都Find用于不同的目的.发生的事情是Find在内部环路中使用螺钉拧紧Find外部环路.我猜excel只记忆一个搜索实例.有没有办法解决这个问题,还是设计问题?
这是我的代码的一些缩短版本.
Sub Main()
'Some boring stuff
Set lst_rapports = Worksheets("mappingTRANSIT").range("lst_rapports")
Set first_result = lst_rapports.Find(rap_choisi)
Set active_result = first_result
Sheets("req01").Unprotect "shoobidoowap"
If Not first_result Is Nothing Then
' ...
Do
Sheets("req01").Select
' ...
For i = 0 To 4
Set rubrique_cell = range("E:E").Find(rub(i))
If Not rubrique_cell Is Nothing Then
' ...
End If
Next i
' Yet more boring stuff...
Set active_result = lst_rapports.FindNext(active_result)
Loop Until active_result.Address = first_result.Address
Else
MsgBox "Impossible …Run Code Online (Sandbox Code Playgroud) 我在一个单独的模块中创建了一个子程序,用于在我正在处理的Excel项目中分配一些全局变量.我正在为变量分配工作表,有9个工作表/变量,但在运行时13只有1个错误,当我检查本地窗口时,我看到分配的类型是"工作表"而不是"变体/对象/工作表#"其余的人都这样做.这是一些代码:
Public Cover, Notes, HWIO, IntChn, FbChn, _
DigFb, AnaFb, RemAlm, OGoL As Worksheets
Public Sub AssignVars()
Set Cover = Sheets("1. Cover")
Set Notes = Sheets("2. Notes")
Set HWIO = Sheets("3. HW Input-Output")
Set IntChn = Sheets("4. Internal Channels")
Set FbChn = Sheets("5. Funct Block Channels")
Set DigFb = Sheets("6. Digital Funct Blocks")
Set AnaFb = Sheets("7. Analog Funct Blocks")
Set OGoL = Sheets("OGOnline")
Set RemAlm = Sheets("8. Remote Alarming")
End Sub
Run Code Online (Sandbox Code Playgroud)
发生错误 Set OGoL = Sheets("OGOnline")
查看Locals我发现除了OGoL之外的所有变量都有一个分配给它们的工作表对象.OGoL在那里有"工作表".它可能正在盯着我,但我不知道为什么我得到一个类型不匹配,表单存在为命名.
我想以编程方式使用excel 2007的条件格式化功能.我有以下场景.
我有6列数字
A B C D E F
100 25 25 15 20 50
....
Run Code Online (Sandbox Code Playgroud)
if (C1/A1)*100 >= B1我必须将它染成红色.同样的规则适用于D1,E1,F1列.
我在excel 2007中看到了条件格式化功能.但是我想要一些关于如何在c#代码中实现它的指针.
我的团队在开发过程中遇到了这个奇怪的错误,困扰着我们。在我的团队正在构建的excel工具上运行VBA时,Excel有时会崩溃,并且会出现“ Microsoft已停止工作”弹出窗口,并且当用户选择“关闭程序”选项时,还会弹出另一个弹出窗口出现“发生自动化错误异常”。现在这是奇怪的地方:
它仅在运行2007、2010和2013的计算机上发生,永远不会出现此问题。
仅每两周发生一次(该工具的3-5个版本)。这些相同的机器每天整天都在运行和测试该工具,直到出现问题为止。
从代码角度来看,可以工作的版本与不能工作的版本之间没有明显的区别。
在某些情况下,机器可以正常运行VBA代码,并且突然开始出现错误。一旦2007年的计算机遇到错误,该文件将永远无法再在该计算机或任何其他2007年的计算机上工作。但是,如果给定相同文件的新副本,则问题有时会消失。
经过一些在线审查之后,我已将错误归结为正在使用的三个引用:OLE自动化,Microsoft Office 12.0对象库,用于Windows 200库的Microsoft CDO。如果以任何组合禁用了这三个中的任何一个,则VBA将开始运行无错误。
我的问题是:
这适用于.xls书籍,但也可以更改为.xlsx工作簿吗?还是它们的语法对两者都适用?
Option Explicit
Public Sub RefreshQueries()
Dim wks As Worksheet
Dim qt As QueryTable
For Each wks In Worksheets
For Each qt In wks.QueryTables
qt.Refresh BackgroundQuery:=False
Next qt
Next wks
Set qt = Nothing
Set wks = Nothing
End Sub
Run Code Online (Sandbox Code Playgroud)
编辑-所以看来我的语法确实刷新了.xlsx工作簿,但没有刷新来自sql server的查询。如何通过VBA刷新这些内容。
excel-2007 ×10
excel ×7
vba ×4
c# ×3
excel-vba ×3
mdx ×1
pivot-table ×1
process ×1
shell ×1
ssas ×1