1

私は自分で VBA を学ぼうとしていますが、電子メールの本文を取得して解析し、配列の要素のみを Excel ファイルに保存しようとしていました。私はそれをやっていますが、私の問題は、ファイルに既にあるものを更新できないように見えることです。新しいメール情報で書き換えて上書き保存するだけです。あなたへの私の質問は、既にそこにあるものを取り除くことなく、私のコードが私のExcelファイルに書き続けることができるようにするために何が必要ですか.

Sub FMK(Item As Outlook.MailItem)

Const PathName = "C:\Users\carter\Desktop\fmk.xlsx"

Dim arrLines As Variant, _
varLines As Variant, _
RowNext As Integer, _
xlApp As Excel.Application, _
ExcelWkBk As Excel.Workbook, _
excWkb As Object, _
excWks As Object, _
temp As String

arrLines = Split(Item.Body, vbCrLf)

Set xlApp = Application.CreateObject("Excel.Application")
Set excWkb = xlApp.Workbooks.Add()
Set excWks = excWkb.ActiveSheet
temp = Trim(arrLines(32))

RowNext = 1
With excWks
    excWks.Cells(RowNext, 1) = temp
End With
RowNext = RowNext + 1

excWkb.SaveAs PathName
excWkb.Close

'this is just for testing purposes  I will remove later 
MsgBox (arrLines(32))
End Sub

お時間をいただきありがとうございます!

4

1 に答える 1

0

最後に使用した行を特定し、その後に新しいデータを配置する必要があります。何かのようなもの:-

RowNext = excWks.Cells.SpecialCells(xlCellTypeLastCell).Row + 1
with excWks
...

(そしておそらく、RowNext を Integer ではなく Long として Dim したいでしょう)

xlCellTypeLastCell は、ファイルが保存されたときにのみリセットされるため、信頼できない可能性があります - おそらくそれで十分です。そうでない場合は、他の提案についてOzGridを参照してください。

于 2012-12-27T18:47:38.670 に答える