2010-06-21 469 views
3

我有一個用VB6編寫的將數據寫入電子表格的應用程序。我使用的MS Excel 11.0對象庫創建一個Excel的實例並打開書:以VB6只讀方式打開Excel工作簿

Dim xlApp As Excel.Application, remoteBook As Workbook 
Set xlApp = New Excel.Application 
Set remoteBook = xlApp.Workbooks.Open(sheetName) 

除了撰寫工作簿「SHEETNAME」,該方案還允許用戶啓動工作簿爲了查看累計結果。

無論身材如何苗條,用戶可以打開工作簿查看結果,而其他人正試圖寫入結果。我想讓用戶寫入表單優先級。有沒有辦法讓我可以啓動表單以只讀方式查看?有一個只讀屬性的Excel應用程序對象,但它(當然)是隻讀的。

即使有人不小心將文件在辦公桌上打開,我如何設置程序將數據寫入工作簿?

回答

5

只要做到這一點:

Set remoteBook = xlApp.Workbooks.Open(sheetName, , true) 

如果真的是,是否爲只讀打開。 ReadOnly是此方法的第三個參數。

+1

這是比我更好的答案(雖然感覺就像你被騙了,你太容易了:)) – 2010-06-21 20:22:23

+1

啊。我有一種感覺,它可能是這樣的容易。謝謝。 – Michael 2010-06-21 20:29:11

0

我認爲你可以通過Workbook.ChangeFileAccess方法做here。不知道它是否會適合你的情況。

0

讓我確認我已正確理解您的問題:

  1. 您的應用程序寫入Excel文件
  2. 應用程序在Excel 文件啓動到用戶

現在,這裏是什麼我認爲你在說: 一旦用戶正在查看工作表,他們可能會或可能不想編輯該工作表。
換句話說,你不希望使用

Set remoteBook = xlApp.Workbooks.Open(sheetName, , true) 

100%的時間,因爲用戶觀看3D電影可能要更改的數據。

缺點是,這個卑鄙的用戶可能會保持打開該文件,以防止其他用戶寫入該文件。

這是正確的嗎?

如果是這樣,這聽起來像您可能需要在您的應用程序中顯式狀態爲「打開以供查看」或「打開以進行只讀」訪問,然後正確切換「只讀」屬性;這可能是不可取的。

但是,一旦其他人打開辦公室文檔,您不能強制保存。

+0

我發現我的解釋不正確。 :P – ray 2010-06-21 20:37:33

相關問題