我正在尝试使用VBA创建一个新的Excel实例:
__CODE__
问题是这个新的Excel实例没有加载我正常打开Excel时加载的所有插件... Excel Application对象中是否有任何内容可以加载所有用户指定的插件?
我不是试图加载特定的加载项,而是让新的Excel应用程序表现得像用户自己打开它一样,所以我真的在寻找通常加载的所有用户选择的加载项的列表打开Excel时.
我正在创建一个csv文件,其中一列包含图像的URL(例如,www.myDomain.com/myImage.jpg
).
如何让Excel渲染此图像?
我有一个看起来像这样的LINQ查询...
var duration = Level3Data.AsQueryable().Sum(d => d.DurationMonths);
Run Code Online (Sandbox Code Playgroud)
如果所有d.DurationMonths
值都为null,则Sum返回0
.null
如果全部d.DurationMonths
是,我怎么能让Sum返回null
?或者我是否需要首先运行单独的查询以在执行总和之前消除这种情况?
我对.NET中System.Type
的实际类类型(如Object
或XmlDocument
)有点模糊......这段代码会正确判断特定对象的类型是否等于我指定的类吗?
' Given "myObject" (unknown type), and some class type (let's say "MyClass")...
If myObject.GetType.Equals(MyClass)
If TypeOf(myObject) Is MyClass
If myObject.GetType() Is MyClass
Run Code Online (Sandbox Code Playgroud)
哪一个是正确的?
如果您可以提供关于类标识符与什么System.Type
是什么的一些信息,则可以获得奖励积分.:)
注意:这里的语言没关系,VB.NET或C#很好,上面的代码是伪代码.
当我使用System.IO.DriveInfo.GetDrives()
并查看.VolumeLabel
其中一个驱动器的属性时,我看到"PATRIOT XT",这确实是驱动器的卷标.
如果我打开"我的电脑",而不是我看到"TrueCrypt Traveler磁盘",我似乎无法找到任何方式以编程方式检索该值,因为没有任何DriveInfo
属性保存该值.我也试过通过WMI查询信息Win32_LogicalDisk
,但是没有属性包含那个值.
那么任何想法My Computer使用的标签都被称为,更重要的是,如何以编程方式检索它?
编辑:要清楚,这是我正在使用的代码,然后是它输出的内容,接下来是我在"我的电脑"中看到的内容(这是我要复制的内容):
foreach (DriveInfo DI in DriveInfo.GetDrives())
richTextBox1.AppendText(
(
DI.IsReady ?
(DI.VolumeLabel.Length == 0 ? DI.DriveType.ToString() : DI.VolumeLabel) :
DI.DriveType.ToString()
)
+
" (" + DI.Name.Replace("\\", "") + ")"
+ Environment.NewLine
);
Run Code Online (Sandbox Code Playgroud)
Removable (A:) Fixed (C:) CDRom (D:) PATRIOT XT (E:) Backup (Y:) Data (Z:)
我的电脑详情视图显示:
Floppy Disk Drive (A:) Local Disk (C:) DVD RW Drive (D:) TrueCrypt Traveler Disk (E:) Backup (Y:) Data (Z:)
为什么这样做......
DECLARE @MyInt int = 12345;
SELECT * FROM MyTable WHERE MyId = @MyInt; --Returns 1 row
SELECT * FROM MyTable WHERE MyId = 12345; --Returns 1 row
Run Code Online (Sandbox Code Playgroud)
但这不是吗?
DECLARE @MyVarchar varchar = 'ABCDEF';
SELECT * FROM MyTable WHERE MyId = @MyVarchar; --Returns 0 rows
SELECT * FROM MyTable WHERE MyId = 'ABCDEF'; --Returns 1 row
Run Code Online (Sandbox Code Playgroud)
SQL Server版本是10.50.1746
我有以下代码.
我无法为我的生活弄明白.
我想根据值的不同来调用另一个子i
.
例如,如果i = 1
它应该调用sale_call1
,i = 2
它应该调用sale_call2
.
Private Sub test_Click()
Dim i As String
Dim pro As String
i = Me.tb1.Value
pro = "sale_call" + i
If i = "1" Then
Call pro
Else
Call pro
End If
End Sub
Sub sale_call1()
MsgBox "Hello"
End Sub
Sub sale_call2()
MsgBox "goodbye"
End Sub
Run Code Online (Sandbox Code Playgroud) 我是C编程的新手,我遇到了一个问题.
如果复杂的声明,我发现了这一点
int *daytab[13]; // daytab is an array of 13 pointers to int
Run Code Online (Sandbox Code Playgroud)
这意味着daytab
是数组的名称,数组的名称指向数组的第一个元素.数组名称与像daytab++
etc等指针操作不兼容(如果我错了,请纠正我).
但我发现这段代码是用Dennis Ritchie编写的
main(int argc, char * argv[]) {
while( --argc > 0 )
printf("%s%s",*++argv,(argc>1) > " " : "");
printf("\n");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
他们怎么操纵argv
?它不是数组名称吗?
Excel 2016似乎在保存时触发以编程方式添加的撤消级别,这在早期版本的Excel(2013,2010和2007)中不会发生.若要重现此明显错误,请打开一个新工作簿并将其另存为启用宏的工作簿(.xlsm文件).将以下代码粘贴到ThisWorkbook模块中:
Option Explicit
Public WithEvents App As Application
Private Sub Workbook_Open()
Set App = Application
End Sub
Private Sub App_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Application.OnUndo "foo", "modTest.Undo"
End Sub
Run Code Online (Sandbox Code Playgroud)
然后,插入一个名为的新模块modTest
并粘贴以下代码:
Public Sub Undo()
MsgBox "This is the Excel 2016 bug."
End Sub
Run Code Online (Sandbox Code Playgroud)
最后,保存工作簿并重新打开它.在任何单元格中输入任何值以触发Application.SheetChange
事件.保存工作簿(由于某种原因,您可能需要执行此操作两次),并且modTest
将显示消息.
任何人都可以解释这里可能会发生什么,和/或如何解决这个问题?如果这确实是一个错误,向Microsoft报告的最佳方式是什么?
这段代码是VBA,但由于这个问题影响用VB.NET和C#编写的VSTO加载项,我也包括这些标签.
[主要编辑基于两天前第一篇文章以来的经验.]
我正在使用Suds构建Python SOAP/XML脚本,但我很难获得生成服务器可接受的SOAP/XML的代码.我曾经认为问题是Suds没有为内部元素生成前缀,但后来发现缺少前缀(参见Sh-Data
和内部元素)不是问题,因为Sh-Data
和MetaSwitchData
元素声明了适当的命名空间(见下文).
<SOAP-ENV:Envelope xmlns:ns3="http://www.metaswitch.com/ems/soap/sh" xmlns:ns0="http://www.metaswitch.com/ems/soap/sh/userdata" xmlns:ns1="http://www.metaswitch.com/ems/soap/sh/servicedata" xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<ns2:Body>
<ns3:ShUpdate>
<ns3:UserIdentity>Meribel/TD Test Sub Gateway 3</ns3:UserIdentity>
<ns3:DataReference>0</ns3:DataReference>
<ns3:UserData>
<Sh-Data xmlns="http://www.metaswitch.com/ems/soap/sh/userdata">
<RepositoryData>
<ServiceIndication>Meta_SubG_BaseInformation</ServiceIndication>
<SequenceNumber>0</SequenceNumber>
<ServiceData>
<MetaSwitchData xmlns="http://www.metaswitch.com/ems/soap/sh/servicedata" IgnoreSequenceNumber="False" MetaSwitchVersion="?">
<Meta_SubG_BaseInformation Action="apply">
<NetworkElementName>Meribel</NetworkElementName>
<Description>TD Test Sub Gateway 3</Description>
<DomainName>test.datcon.co.uk</DomainName>
<MediaGatewayModel>Cisco ATA</MediaGatewayModel>
<CallFeatureServerControlStatus/>
<CallAgentControlStatus/>
<UseStaticNATMapping/>
<AuthenticationRequired/>
<ProviderStatus/>
<DeactivationMode/>
</Meta_SubG_BaseInformation>
</MetaSwitchData>
</ServiceData>
</RepositoryData>
</Sh-Data>
</ns3:UserData>
<ns3:OriginHost>user@domain.com?clientVersion=7.3</ns3:OriginHost>
</ns3:ShUpdate>
</ns2:Body>
</SOAP-ENV:Envelope>
Run Code Online (Sandbox Code Playgroud)
但这仍然失败.问题是Suds为可选元素生成空元素(Mandatory = No
在WSDL中标记).但是服务器要求可选元素存在具有合理值或不存在,并且我得到以下错误(因为该<CallFeatureServerControlStatus/>
元素不是允许值之一.
提供的用户数据未针对用户数据针对MetaSwitch XML架构进行验证.
详细信息:cvc-enumeration-valid:对于枚举'[Controlling,Abandoned,Cautiously controlling]',值''不是facet-valid.它必须是枚举中的值.
如果我将生成的SOAP/XML带入SOAPUI并删除空元素,那么请求就可以了.
有没有办法让Suds不为可选字段生成空元素,或者让我之后在代码中删除它们?
主要更新
我已经解决了这个问题(我在其他地方已经看过)但是以一种非常不优雅的方式.所以我发布我当前的解决方案,希望a)它可以帮助他人和/或b)有人可以建议更好的解决方案.
事实证明,问题不在于Suds为可选元素生成空元素(Mandatory …