2015-12-03 273 views
1

我在主計算機上創建並運行了VBA子項,但筆記本計算機上的預期工作不正常(均使用Excel 2013)。計算機之間的VBA結果不一致 - 將.value設置爲公式

Set headerColumn_total = ActiveWorkbook.Worksheets("Raw Consensus").ListObjects("TblConsensusTotals").ListColumns.Add 
colPosition = ActiveWorkbook.Worksheets("Raw Consensus").ListObjects("TblConsensusTotals").ListColumns.Count 
colPosition = colPosition - 1 
CellValue = "=SUM(TblConsensus[" & colPosition & "])" 
headerColumn_total.Range.Cells(1, 1).Value = CellValue 
headerColumn_total.Range.Cells(1, 1).Interior.ColorIndex = 6 

解釋的代碼: 正如你可以看到,第一行添加一列以2行表,TblConsensusTotals的末尾。然後,對列數進行計數(減1)並分配給colPosition。 CellValue是我想要的單元格的確切文本,當然也是內部顏色。

在我的主計算機上(預期): 列中最頂端的單元格(表格的第1行)接收公式,第2行單元格(.Range.Cells(2,1))爲空。顏色設置是相同的。

在我的筆記本電腦上(已觀察): 列的第一行和第二行單元格都接收到公式,就好像它被賦予整個範圍而不僅僅是單元格(1,1)。但是,顏色仍然只在第一個單元格上設置,如預期的那樣。

我敢肯定在VBA或者其他版本中存在.001版本的差異,但是我不知道如何去尋找。有沒有不同的方式可以編寫這個程序讓它在兩臺計算機上都能正常工作?

謝謝!

編輯:

忘了提。有趣的是,如果你設置.Value =任何東西,但是一個公式(比如說.Value = 2),而不是將CellValue定義爲包含公式的字符串,則它在主計算機和筆記本計算機上按預期工作,只設置Value單細胞。一個字符串也是一樣的。但是,一旦您在字符串中使用公式('='符號),它會「斷開」並將該值設置爲筆記本電腦上的兩個單元格。

+0

根據公式內部是如何工作的'tables'在筆記本電腦上的觀測數據是正確的* *的行爲。 –

+0

如果是這樣的話,我該如何打破它呢?要點是,我想改變範圍內單個單元格的值,而不是整個範圍。編輯:請記住有2個不同的表格,TblConsensusTotals和TblConsensus。 TblConsensusTotals存在的原因是因爲我需要2個總計行,而不僅僅是1個。所以我只用2行數據創建了第二個表(沒有標題或總數)。所以說,爲什麼地球上是一個字符串包含發送到該範圍的公式,而不包含公式的字符串只能進入一個單元格? –

+0

使用'.Formula'代替'.Value'怎麼樣? –

回答

1

轉到Excel選項([ALT] + F,T)然後校對並點擊自動更正選項。轉到自動套用格式當您輸入自動更正對話框的選項卡並在工作時自動檢查/取消選中在表格中填寫公式以創建計算列

AutoCorrect
罪魁禍首

相關問題