Tıklama düğmesine basılan bir komut dosyası oluşturdum, böylece yoldan ve biçimden CSV dosyasını yükler ve kaydeder. 1 ... 10000 dosyalarım olduğu için 1.txt gibi dosya yaptım. Sorun alıyorum, her şey yolunda gidiyor ama 10-13 dosyaları sonra hata veriyor ve excel kapanıyor. Aşağıdaki kodları kullanıyorum. Lütfen bana nerede hata yaptığımı göster. Sanırım hata yaptım, redim denedim ama bu bana aynı hatayı veriyor. Bu, işlem başlatmak için düğmeme yerleştirdiğim alt. Binlerce dosyaya sahip olduğum için lütfen bana bir çözüm öner.10 dosya kaydedildikten sonra Excel bana hata veriyor
Sub WorkbooksLoop()
' get the list of filenames
Dim pageStart As Integer
Dim pageEnd As Integer
pageStart = CInt(Cells(3, "C").Value) ' getting from cell of excel sheet
pageEnd = CInt(Cells(4, "C").Value) ' getting from cell of excel sheet
Dim Filenames(44) As String ' variable I know there are 44 files
For j = pageStart To pageEnd
Filenames(j) = CStr(j) + ".txt"
Next j
On Error GoTo NoFilenames
Dim controllerwb As Workbook
Set controllerwb = ActiveWorkbook
Dim wb As Workbook
Dim fname As Variant
Dim rootPath As String
rootPath = ThisWorkbook.Path
rootPath = rootPath & "\"
For Each fname In Filenames
' Make the controller active
controllerwb.Activate
On Error Resume Next
' If activate fails, then the workbook isn't open
Workbooks(fname).Activate
' If activate fails, then the workbook isn't open
If Err <> 0 Then
OpenFile (rootPath & fname)
Set wb = ActiveWorkbook
wb.Activate
' Otherwise, workbook is already open, refer to it by name
Else
OpenFile (rootPath & fname)
Set wb = ActiveWorkbook
End If
' do something to the open workbook my process to format sheet
deletingRowsColumns
ledgerSetup
resizeColumns
columnLines
columnAlignments
mergeTitles
settingNames
wb.Close
Next fname
NoFilenames:
End Sub
"Hata Özgeçmişinde Sonraki" seçeneğinin uygun olmayan kullanımınız, "silmeRowsColumns", "ledgerSetup", vb. Gibi adlandırılan yordamlarda oluşan hata (lar) ı gizleyebilir. –
'Hata Hatası '0'ını eklemeyi öneririm hemen * sonra * End If 'ifadesi. Bu, normal hata işlemeye devam eder ve diğer prosedürlerden herhangi birinde bulunan hataları tanımlamaya yardımcı olur. –
Ayrıca, hatanın hangi satırda yükseldiğini ve aldığınız belirli bir hata mesajını açıklamayı düşünün. –