713 发表于 2006-3-24 00:27:31

防止更新外部引用...

我在阻止更新驻留于某些公式的外部引用方面遇到了一个严重的问题,我正在以编程方式将其写入XLS类型格式。我正在使用此代码访问该文件...
Workbooks.Open Filename:=lblProductPath.Caption, UpdateLinks:=0
' write my data into the cells
' some of it contains formula that reference external objects
Workbooks(jayRtrnFileName(lblProductPath.Caption, "\")).Close SaveChanges:=True

我怀疑它是在写入我需要关注的单元格中。当我手动键入公式时,也会发生同样的事情。有人有快速解决这个问题的方法吗?我已经查看帮助文件一个小时了,我很困惑。
**** Hidden Message *****

好男人 发表于 2006-3-24 00:29:44

见鬼,甚至可能是暂时绕过Excell正常错误系统的方法。

长高 发表于 2006-3-24 09:27:23

如果这种情况继续下去,我会开始感觉像Hatch。
因此,在阅读了所有我能得到的关于Excel如何处理计算的信息后,我决定有必要尝试不同的策略。我遇到的人显然没有人需要将数据写入包含他们无权访问的外部引用的单元格(这是客户端应用程序的文件结构问题)。我选择用以下代码愚弄Excel采用我的外部引用公式。它适用于Excel,但我直到明天才知道我正在操作的数据的客户端应用程序是否会接受此最终运行。
这是代码-
Sub ExtRefTest1()
Dim myFormula As Variant
myFormula = "=xreference1!ireference"
Range("C2").Select
      Selection.Formula = myFormula
End Sub
Sub ExtRefTest2()
Dim myFormula As Variant
myFormula = "=xreference2!ireference"
Range("C3").Select
      Selection.NumberFormat = "@" 'changes it to a text format
      Selection.Formula = myFormula
End Sub
Sub ExtRefTest3()
Dim myFormula As Variant
myFormula = "=xreference3!ireference"
Range("C4").Select
      Selection.NumberFormat = "@" 'changes it to a text format
      Selection.Formula = myFormula
      Selection.NumberFormat = "General" 'changes it back to a general format
End Sub
Sub GetCellFormats()
Debug.Print "C2: " & Worksheets("Sheet1").Range("c2").NumberFormatLocal
Debug.Print "C3: " & Worksheets("Sheet1").Range("c3").NumberFormatLocal
Debug.Print "C4: " & Worksheets("Sheet1").Range("c4").NumberFormatLocal
End Sub

测试1演示了最初的问题。测试2和3适用于Excel,但我不知道它是否适用于客户端应用程序。

伤心俱乐部 发表于 2006-3-25 01:06:45

好吧,它似乎在客户端应用程序中不起作用。我稍后会再做一些测试,弄清楚发生了什么。我输入的数据的语法可能是错误的。与此同时,这是我找到的一篇文章,总结了Excel的计算方式。
http://www.decisionmodels.com/calcsecretse.htm
页: [1]
查看完整版本: 防止更新外部引用...