1

VBA アプリケーションの実行中にこのエラーが発生しました。このエラーは、私のコードの次の行に関連していると思います

ActiveWorkbook.Save

これがコード全体です。

LDate = Date
LDate = Mid(LDate, 4, 2)
If LDate > 8 Then
Sheets("a").Cells(13, "H").Value = Sheets("a").Cells(13, "H").Value + 1000
Else
Sheets("a").Cells(13, "H").Value = Sheets("a").Cells(13, "H").Value + 1
End If
ActiveWorkbook.Save

誰かがこのエラーの原因と対処方法を説明できますか?

以下のコメントをお読みください。

これは、最初のボタンがクリックされたときに実行されるサブルーチンです。

Sub import()
Dim Filt As String
Dim FilterIndex As Integer
Dim Title As String
Dim FileName As Variant
Dim finalrow As Integer
Dim alldata As String
Dim temp As String
Dim oFSO As New FileSystemObject
Dim oFS As TextStream

'Filt = "Cst Files (*.txt),*.txt"
'Title = "Select a cst File to Import"
'FileName = Application.GetOpenFilename(FileFilter:=Filt, Title:=Title)
'If FileName = False Then
'MsgBox "No File Was Selected"
'Exit Sub
'End If

'Call TestReference

' Open the file dialog
Set diaFolder = Application.FileDialog(msoFileDialogFolderPicker)
diaFolder.AllowMultiSelect = False
diaFolder.Show
If diaFolder.SelectedItems.Count <> 0 Then
folderpath = diaFolder.SelectedItems(1)
folderpath = folderpath & "\"
'MsgBox diaFolder.SelectedItems(1)

Set diaFolder = Nothing

'RefreshSheet
On Error Resume Next
temp = folderpath & "*.txt"
sFile = Dir(temp)

Do Until sFile = ""
inputRow = Sheets("RawData").Range("A" & Rows.Count).End(xlUp).Row + 1
FileName = folderpath & sFile
Set oFS = oFSO.OpenTextFile(FileName)
Dim content As String
    content = oFS.ReadAll
content = Mid(content, 4, Len(content) - 3)
With Sheets("RawData").Range("A" & inputRow)
        .NumberFormat = "@"
        .Value = content
End With

oFS.Close
Set oFS = Nothing

alldata = ""
finalrow = Sheets("RawData").Cells(Rows.Count, 1).End(xlUp).Row
Sheets("RawData").Activate
For i = inputRow To finalrow
alldata = alldata & Cells(i, "A").Value & " "
Cells(i, "A").Value = ""
Next i
Cells(inputRow, "B").Value = alldata

temp = StrReverse(FileName)
temp = Left(temp, InStr(1, temp, "\") - 1)
temp = StrReverse(temp)
temp = Left(temp, InStr(1, temp, ".") - 1)
Cells(inputRow, "A").Value = temp
Sheets("RawData").Cells(inputRow, "A").NumberFormat = "@"
sFile = Dir()
Loop
Else
MsgBox ("No Folder Selected")
End If
End Sub

このマクロを実行した後、このコードがワークシートへのアクセスを停止する方法は?

4

2 に答える 2

4

コードのリファクタリングを真剣に検討する必要があると思いますが、.Save() メソッドによって呼び出される正しいワークブックを参照することから始める必要があります。

    Workbooks("Insert_Workbook_Name_Here.xlsm").Save

ワークブックの名前と拡張子 (.xlsm、.xls、.xlsx) が、実際に保存しようとしているファイルと一致していることを確認してください。

于 2013-09-03T21:45:26.687 に答える
0

このエラーは、私が書いたマクロでも発生しました。ダイアログボックスを閉じるためのこのコードがあります。

Private Sub CancelButton_Click()
   Unload Me
ThisWorkbook.Save
   End
End Sub

元のブックが開いている間に更新の再起動が発生したため、ロードされていたブックが「最後に保存された」コピーからのものであったため、同じエラーが発生しました。将来それを回避する方法はわかりませんが、誰かに役立つかもしれないと考えました.

于 2016-09-20T21:55:29.883 に答える