我希望我的代码打开一个工作簿(总是相同的),检测第一个空闲行,只写入该行中的两个单元格,然后保存/关闭工作簿。这似乎是一个简单的问题,但宏似乎是打开文件的副本,然后锁定它进行编辑。
您可以在我的开放代码中看到任何错误吗?我知道文件打开并且行搜索有效,但是它1.从不写入单元格,并且2.锁定文件。
Function WriteToMaster(Num, Path) As Boolean
'Declare variables
Dim xlApp As Excel.Application
Dim wb As Workbook
Dim ws As Worksheet
Dim infoLoc As Long
Set xlApp = New Excel.Application
'Specifies where the Master Move Key is stored
Set wb = xlApp.Workbooks.Open("DOC LOCATION")
Set ws = wb.Worksheets("Sheet1")
'Loop through cells, looking for an empty one, and set that to the loan number
infoLoc = firstBlankRow(ws)
MsgBox "First blank row is " & infoLoc & ". Num is " & Num
ws.Cells(infoLoc, 1).Value = Num
ws.Cells(infoLoc, 2).Value = Path
'Save, close, and quit
wb.Save
wb.Close
xlApp.Quit
'Resets the variables
Set ws = Nothing
Set wb = Nothing
Set xlApp = Nothing
'pieces of function from http://p2p.wrox.com/vb-how/30-read-write-excel-file-using-vb6.html
End Function
再次感谢stackoverflow< 3
答案 0 :(得分:3)
您是否需要打开一个新的Excel应用程序才能打开工作簿?
你不能只做这样的事情:
Sub Macro1()
Dim wkb As Workbook
Workbooks.Open Filename:="\User Documents$\bob\My Documents\workbook_open_example.xlsx"
Set wkb = Workbooks("workbook_open_example.xlsx")
End Sub