这有多难......或者我想。我要做的是提取给定工作表中的一系列单元格的值,颜色,注释和任何公式。最终目标是将某人用作数据库的电子表格转换为Access表格。
worksheet.Cells(row,column).Value
'提取值工作
worksheet.Cells(row,column).Font.ColorIndex
'提取颜色索引WORKS
worksheet.Cells(row,column).Comment.Text
'提取评论作品
worksheet.Cells(row,column).Formula
'提取公式无效
.Formula
的返回值与.Value
相同。那不是我需要的。我正在寻找公式的文本表示(以提取公式中嵌入的费率信息)。
答案 0 :(得分:0)
感谢David在VBA中测试代码。在发布问题之前我应该这样做。
更新:我使用VBA测试了代码。有用。所以我回到我的VB.Net代码,发现了问题。我认为VB.Net属性中存在一个错误,这就是原因。
我有一个ExcelSheet类,它包含对Excel.Worksheet的引用。它实现了一个索引器[row,colum],它返回另一个ExcelRange类,它包含对Excel.Range的引用。我注意到的错误是第一个MsgBox显示公式作为其字符串表示,而第二个MsgBox显示评估数据。我的快速解决方法是在构造函数中捕获公式。
Private myCell As Excel.Range
Private myFormula As String
Friend Sub New(ByRef cell As Excel.Range)
myCell = cell
MsgBox(myCell.Formula,,"Constructor") 'Displays formula as string
myFormula = myCell.Formula 'Saving formula as string
End Sub
Public ReadOnly Property Formula() As String
Get
MsgBox(myCell.Formula,,"Property") 'Displays evaluated data
Return myFormula 'Return formula saved as string in constructor
End Get
End Property
这解决了我的问题,但我很好奇为什么VB.Net会这样做。