VBA open xls as read-only

G

Guest

I open an xls and insert value to it from VBA. However, the xls is opened as
read-only, even though the code asked for none-read-only access. Btw, all the
samples I found are for opening a new xls then insert data, and I need to
open an existing xls.

Your help is appreciated!

Here is my calling code block: (m_objExcel is declared as New cExcel)
Private Sub Command1_Click()
m_objExcel.StartExcel True
m_objExcel.OpenWorkbook "V:\my Report.xls", True
‘I can see the xls after last line is run, but the title says read-only
‘the next line will insert value, but later it wouldn’t save.
m_objExcel.InsertValue "L2", "20"
m_objExcel.CloseExcel

End Sub
Below are sub/functions from sample code in class module.
Public Sub StartExcel(fVisible As Boolean)
' Comments : Starts an instance of Excel
' Parameters: fVisible - True to make Excel visible
…
m_objExcel.Visible = fVisible
…
End Sub

Public Function OpenWorkbook(strFileName As String, fReadOnly As Boolean, _
Optional varPassword As Variant) As Excel.Worksheet
' Comments : Opens the named file and associates it with the class
' Parameters: strFileName - full path and name of the file to open
' fReadOnly - True to open readonly

If Not IsMissing(varPassword) Then …
Else
Set m_objWorkbook = m_objExcel.Workbooks.Open(strFileName, , fReadOnly)
End If
…
End Function
 
J

Jim Rech

m_objExcel.OpenWorkbook "V:\my Report.xls", True

Sure looks to me that you're passing True as the Readonly argument to
Function OpenWorkbook.

--
Jim
|I open an xls and insert value to it from VBA. However, the xls is opened
as
| read-only, even though the code asked for none-read-only access. Btw, all
the
| samples I found are for opening a new xls then insert data, and I need to
| open an existing xls.
|
| Your help is appreciated!
|
| Here is my calling code block: (m_objExcel is declared as New cExcel)
| Private Sub Command1_Click()
| m_objExcel.StartExcel True
| m_objExcel.OpenWorkbook "V:\my Report.xls", True
| 'I can see the xls after last line is run, but the title says read-only
| 'the next line will insert value, but later it wouldn't save.
| m_objExcel.InsertValue "L2", "20"
| m_objExcel.CloseExcel
|
| End Sub
| Below are sub/functions from sample code in class module.
| Public Sub StartExcel(fVisible As Boolean)
| ' Comments : Starts an instance of Excel
| ' Parameters: fVisible - True to make Excel visible
| .
| m_objExcel.Visible = fVisible
| .
| End Sub
|
| Public Function OpenWorkbook(strFileName As String, fReadOnly As Boolean,
_
| Optional varPassword As Variant) As Excel.Worksheet
| ' Comments : Opens the named file and associates it with the class
| ' Parameters: strFileName - full path and name of the file to open
| ' fReadOnly - True to open readonly
|
| If Not IsMissing(varPassword) Then .
| Else
| Set m_objWorkbook = m_objExcel.Workbooks.Open(strFileName, , fReadOnly)
| End If
| .
| End Function
|
|
 
G

Guest

I am sorry, I pasted the code from my second try. First time, I did pass in
false, and it did not work.
 
N

NickHK

hommer,
As long as you are actually passing False in you code, the file system may
have set the file to Read Only, then it is not within the control of Excel.
For the file, right-click and check the Properties. Is the Read Only
Attribute set ?

NickHK
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top