2009-07-26 102 views
2

我从.xls文件导出.bas文件,如此处所述:Exporting A VBComponent Code Module To A Text File将其检入SVN回购。Excel VBE不一致导出

我遇到了以下问题,这些问题导致文件中变量名称的外壳变化实际上不是真实的(或者至少不相关)。

之类的语句,这些得到重新格式化/ recased:

rngTenors.Cells(i, 1) 
changes into 
rngTenors.cells(i, 1) 

(微妙的,但仍然是不同的,它被用diff工具,我用捡到并隐藏在这个产生的噪声对文件的实际变化)

任何想法,以防止这种情况发生,将不胜感激。

回答

1

我正在做类似的事情,但没有看到你正在经历什么。我没有使用相同的导出例程,但乍一看看起来很相似。

有几个问题。

1)您是否使用option explicit,并 你有一个名为cell 随时随地变量?

2)如果您提交,然后进行一些更改,导出.bas文件并再次提交,diff是什么样的?

3)您是否在可能正在改变大小写的代码识别编辑器(例如:Ultraedit)中打开和区分.bas文件?

我只是猜测......但如果您将变量的名称命名为方法或属性,VB编辑器的大写字母可能会很奇怪。另外我不明白为什么你的出口将不一致地出口.Cell我猜如果它出口到.cell那么它应该总是出口到.cell而不是一个问题。

这些都只是一些想法,好运:)

+0

感谢您的反馈Mark,我正在使用选项显式。我将在明天搜索我的代码以获取名为cell的变量。关于2),差异一般看起来像他们应该(除了引入这个额外的不需要的差异时)。 3)我使用winmerge作为我的差异工具(我认为它不是代码感知的) 我认为用'冲突'变量名的解释听起来很可能,将会跟进,非常感谢您的帮助! – 2009-07-26 20:05:11

0

事实上,我发现一些代码如上建议。

dim cell 

我现在已经改名为这个变量,因为没有重新格式化时有发生。我期望并希望这已经解决了这个问题。非常感谢您的帮助!

1

的VBE保持变量名称的内部缓存,包括的外壳,所以即使你找到了一个叫cell变量,并将其更名为别的东西,VBA仍认为这是一个有效的名称,所以它在所有文本的所有用法中保留套管。

你就可以欺骗的VBE到重置变量外壳(这也适用于对方法外壳问题太)暂时声明一个变量与正确的外壳:

Public Cell as String 

,然后删除该变量。然后你应该发现所有的外壳在你的项目中(以及任何引用它的项目)都是固定的。