0

コードでワークブック (常に同じもの) を開き、最初の空いている行を検出し、その行の 2 つのセルだけに書き込み、ワークブックを保存/閉じるようにしたいと考えています。これは単純な問題のように思えますが、マクロはファイルのコピーを開き、編集のためにロックしているようです。

開いているコードにエラーが表示されますか? ファイルが開き、行検索が機能することはわかっていますが、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

もう一度ありがとう、スタックオーバーフロー<3

4

1 に答える 1

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
于 2012-09-19T19:17:01.010 に答える