我正在尝试使用多维字符串数组来填充 Excel 工作表,并且在插入公式时遇到了麻烦。下面的小案例说明了这个问题:
Dim tA(3, 3) As String
tA(1, 1) = "=HYPERLINK(""www.stackoverflow.com"")"
tA(1, 2) = "=HYPERLINK(""www.stackexchange.com"")"
tA(2, 1) = "=2+5"
tA(2, 2) = "Normal Text"
worksheet.Range(worksheet.Cells(1, 1), worksheet.Cells(4, 4)).Value = tA
评估此代码时,Excel 工作表不会自动转换超链接或评估公式。也就是说,当我查看 Excel 时,(2,1) 处的单元格将根据需要显示“=2+5”而不是“7”。有没有办法强制 excel 评估所有单元格以查看是否存在命令?
我应该注意,如果我将命令插入到单个单元格中,那么它会被正确评估,但这不是一个选择,因为我有数千个单元格并且一次填充一个单元格会慢几个数量级。
最佳答案
您会得到它,因为公式作为值被传输,将以下行添加到您的代码中,您应该很高兴:worksheet.Range(worksheet.Cells(1, 1), worksheet.Cells(4, 4)).formular1c1= worksheet.Range(worksheet.Cells(1, 1), worksheet.Cells(4, 4)).formular1c1
完整的代码是
Dim tA(3, 3) As String
tA(1, 1) = "=HYPERLINK(""www.stackoverflow.com"")"
tA(1, 2) = "=HYPERLINK(""www.stackexchange.com"")"
tA(2, 1) = "=2+5"
tA(2, 2) = "Normal Text"
worksheet.Range(worksheet.Cells(1, 1), worksheet.Cells(4, 4)).Value = tA
worksheet.Range(worksheet.Cells(1, 1), worksheet.Cells(4, 4)).formular1c1= worksheet.Range(worksheet.Cells(1, 1), worksheet.Cells(4, 4)).formular1c1
关于vb.net - 设置范围值时不评估 Excel 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13199387/