[英]Excel VBA can't save file
這是我的代碼,但保存文件時遇到問題。
Private o As Integer
Public Sub Procedure1()
o = 1
End Sub
Sub dural()
Location = Sheets("uitleg").Range("A2").Value
Totallocation = Location & "\"
Debug.Print (Totallocation)
checkNum = Sheets("FunBelgium").Range("A1").Value
Debug.Print (checkNum)
lRow = Range("A65536").End(xlUp).Row 'finds last row, assumes contiguous data
j = 1 'first row for your output
For i = 1 To lRow
If Range("A" & i).Value = checkNum Then
Sheets("Output").Range("A" & j & ":N" & j).Value = Sheets("FunBelgium").Range("A" & i & ":N" & i).Value
Rows([i]).EntireRow.Delete
j = j + 1 'advances output row counter if checkNum is found
End If
Next
o = o + 1
Application.ScreenUpdating = True
Sheets("Export").Activate
ActiveSheet.Copy
Thisfile = ActiveSheet.Range("J2").Value
With ActiveSheet.UsedRange
.Copy
.PasteSpecial xlValues
.PasteSpecial xlFormats
End With
Application.CutCopyMode = False
ActiveWorkbook.SaveAs Filename:=Totallocation & Thisfile, FileFormat:=xlCSV, CreateBackup:=True
'ActiveSheet.SaveAs Filename:="C:\Users\sgouman\Downloads\Bernd\" & Thisfile & ".csv"
Application.ScreenUpdating = True
ActiveWorkbook.Close
Sheets("FunBelgium").Activate
If Cells(1, 1) = "" Then
Sheets("Output").Cells.ClearContents
Exit Sub
Else:
Debug.Print ("niet leeg")
Sheets("Output").Cells.ClearContents
j = 0
Call dural
End If
End Sub
因此,總位置調試為:C:\\ Users \\ sgouman \\ Downloads \\ Bernd \\
但是我遇到了1004錯誤。 如果我只是手動復制到activeworkbook.saveas中的該文件位置,則可以正常工作。
我相信這是問題所在:
Totallocation = Location & "\"
請替換為:
Totallocation = Location & "\\"
原因:“ \\”字符是一個特殊字符,為下一個賦予了另一種含義(例如,“ \\ n”是換行符,“ \\ t”是制表符,...)。
我在PC上試過了,一切正常,請調試VBA代碼到“保存”行,然后在立即窗口中啟動以下命令,讓我們知道結果:
?totalLocation
?ThisFile
?totalLocation & Thisfile
這應該向您顯示文件名的樣子。
順便說一句,您確定您的目錄不是只讀的嗎? 您甚至確定這是引起問題的線路嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.