有没有人有幸弄清楚如何使用Open XML SDK 2.0向Excel添加评论?我找不到任何有关此问题的入门文档.
我有一个小的C#应用程序,它引用了Microsoft Excel 12.0对象库.除其他外,它从Excel单元格中读取值.它从一些较旧的Excel(.xls)文件和一些2007文件(.xlsx)中读取此值.对于所有.xls文件,该值都会正确返回,但我只获得.xlsx文件的以下值:-2146826265.
我正在阅读的单元格包含一个简单的公式:"= A1 + B1".
这是我正在使用的代码行
((Excel.Range)ws.Cells.get_Item(29, 17)).get_Value(null));
Run Code Online (Sandbox Code Playgroud)
其中ws是当前活动的工作表.
谢谢你尽你所能的帮助.
我想从字符串中提取数字.字符串像这样写在每个单元格中.
1, 1
1, 2
1, 3
Run Code Online (Sandbox Code Playgroud)
数字简单地用逗号分隔.
如何在Excel VBA中从中提取数字?
非常感谢你.
我有一个VBA程序(在Excel 2007中),我希望使用数组设置组合框的ListFillRange属性作为列表.
我知道如果我右键单击组合框并在"ListFillRange"属性旁边写上"Sheet1!$ F2:$ F17",这就行了.我也可以在代码中执行此操作.但是,我有兴趣通过为其分配一个数组来动态设置此属性的值.
我确定数组工作正如我测试的那样; 这里可能存在语法错误:
ThisWorkbook.Worksheets("Sheet1").OLEObjects("cmbS").ListFillRange = ar
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我得到:"类型不匹配"错误.
此操作的结果应该是使用数组元素填充组件,从元素(0)...到数组的最后一个元素(n-1).任何指针,非常感谢!
我也尝试过:
ThisWorkbook.Worksheets("Sheet1").cmbS.list = ar
Run Code Online (Sandbox Code Playgroud)
它说"许可被拒绝"
以下是组合框属性,以防有助于:

经过测试和尝试,我发现这有效:
ThisWorkbook.Worksheets("Sheet1").cmbS.ListFillRange = ""
Dim i As Integer
For i = LBound(ar) To UBound(ar)
ThisWorkbook.Worksheets("Sheet1").cmbS.AddItem (ar(i))
Next
Run Code Online (Sandbox Code Playgroud)
但是,我有兴趣一次填充所有值以获得更快的效果,而不仅仅是逐个元素添加.
我有一个记录列表,我想过滤掉那些包含"~6"的记录.问题是......我只能过滤"〜(空格)6"而不是"〜6".当我尝试过滤"~6"时,我得到的结果列表与过滤包含6的结果时的结果相同.我一直在尝试一整天并且不知道出了什么问题.有人可以帮忙吗?非常感谢.这是示例数据:
如果我过滤包含~6的记录,这是我想要的结果
我有两个链接到不同表单的Excel图片对象,每个图片对象都有一个文本框和确定/取消按钮.在一种形式中,当单击我想要的对象时,文本光标位于文本框中:
但在另一个中它选择OK命令按钮而不是文本框中的文本光标: 
我已经浏览了表单和文本框/命令按钮属性,并且没有看到有关选择的内容,并且"正确"的宏属性看起来与"不正确"的宏属性相同.
如何更改表单,以便在打开时文本光标转到文本框而不是选择命令按钮?
我有一个excel表,我正在尝试合并一个SUMIFS公式,该公式将检查一列的条件,然后检查另一组列以在匹配中查看条件,以便对列组中> 50000的所有值求和然后将这些值乘以0.084.我的公式返回#VALUE错误.我怎样才能实现我想要的?
A B C D E F G H I
NO 51000 52000 12000 10000 53000
NO 23000 48000 54000 55000 50000
=SUMIFS(E10:I610,A10:A610,"No",E10:I610,">50000")
Run Code Online (Sandbox Code Playgroud)
请帮忙...
我有一列DeviceName中Sheet1,它包含了类似的数据RTRNY653, SWNY653, ....在Sheet2我有一列InterfaceName,它包含接口名称,并在年底的设备名称列太FA_01_RTRNY653, FA_12_SWNY653, ...
得到QoSID链接的标准公式DeviceName将是=VLOOKUP(DeviceName;Sheet2!InterfaceName;2;0),但因为InterfaceName包含更多文本,我被卡住了...
问:我怎样才能创建一个使用一个VLOOKUP函数DeviceName从Sheet1,看上去它在InterfaceName上Sheet2,并得到我列QoSID的Sheet2.
示例数据
Sheet1
DeviceName
-----------
RTRNY653
SWNY653
RTRWS215
RTRCH888
Sheet2
InterfaceName | QoSID
--------------------------
FA_01_RTRNY653 | 1
FA_12_SWNY653 | 2
S_00_RTRWS215 | 1
S_01_RTRWS215 | 3
Run Code Online (Sandbox Code Playgroud) 我正在尝试在Excel中计算屏幕比率.我有一个带有x和y的列,我对计算比率列的期望是:
x | y | ratio 1920 | 1080 | 16/9
但是通过使用公式= x/y并将比率列格式化为分数,我得到:
x | y | ratio 1920 | 1080 | 17/9
我认为这与舍入误差有关,但有没有办法解决这个问题,以便显示准确的屏幕分辨率?
由于亚洲时报Siddharth溃败在这个帖子我学会了如何纸张保存到一个新的工作表。现在我的问题是如何添加文件创建的日期和时间,例如:
TestSheet_25May2013_5pm.xls
Sub SaveSheet()
Dim FName As String
ActiveSheet.Copy
With ActiveSheet.UsedRange
.Copy
.PasteSpecial xlValues
.PasteSpecial xlFormats
End With
Application.CutCopyMode = False
FName = "C:\Users\somebody\Documents\TestSheet" & Format(Range("E19"), "mmm-d-yyyy") & ".xlsm"
ActiveWorkbook.SaveAs Filename:=FName, _
FileFormat:=xlOpenXMLWorkbookMacroEnabled
End Sub
Run Code Online (Sandbox Code Playgroud)
你能让我知道怎么做吗?
excel-2007 ×10
excel ×9
vba ×5
excel-vba ×4
c# ×1
forms ×1
fractions ×1
openxml ×1
openxml-sdk ×1
vlookup ×1