Aktywne Wpisy
njdnsjdnjs +108
mam 43 tagów na czarno x__x
w niezłej bańce żyję
w niezłej bańce żyję
oszty +3
Co według was jest perełką którą na pewno warto zobaczyć z tegorocznych nominacji?
#oscary
#oscary
Skopiuj link
Skopiuj linkWykop.pl
StitchedWorkbook = Application
.GetOpenFilename("excel files (*.xls), *.xls")
If fileToOpen <> False Then
MsgBox "Open " & fileToOpen
End If
Powyżej jest część odpowiedzialna za wskazanie nazwy pliku, poniżej reszta kodu:
Windows(StitchedWorkbook).Activate 'tu sie wykrzacza a jesli usune te linijke, to wklejanie w ogole nie nastepuje
Sheets("FILES").Select 'arkusz gdzie nastepuje scalanie ma dwie zakladki, files i data, scalanie nastepuje w data
Row = 2
FileNum = 0
Do
FileNum = FileNum + 1
FiletoProcess(FileNum) = Cells(Row, 1).Value
Row = Row + 1
Loop While Cells(Row, 1).Value <> ""
NumFiles = FileNum
'switch to [DATA] sheet
Sheets("DATA").Select
'open files and copy data to StitchedWorkbook, then close again
For FileNum = 1 To NumFiles
Workbooks.Open Filename:=FiletoProcess(FileNum)
CopyRow = 0
Do
CopyRow = CopyRow + 1
Loop While Cells(CopyRow + 1, 1).Value <> ""
If FileNum = 1 Then
CopyRowRange = "1:" + CStr(CopyRow)
Else
CopyRowRange = "3:" + CStr(CopyRow)
End If
Rows(CopyRowRange).Select
Selection.Copy
Windows(StitchedWorkbook).Activate
PasteRow = 0
Do
PasteRow = PasteRow + 1
Loop While Cells(PasteRow, 1).Value <> ""
Cells(PasteRow, 1).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Windows(FiletoProcess(FileNum)).Activate
ActiveWorkbook.Close (False)
Next File_Num
end sub
Nie wiem, czy czasem nie chodzi o poprawne zdefiniowanie obiektów? Dodam, że makro uruchamiane jest z poziomu pliku, w którym następuje scalanie.
Będę wdzięczny, jak komuś zechce się na to zerknąć, bo mam wrażenie, że sprawa jest prosta, tylko brakuje mi doświadczenia.
#pytaniedoeksperta #vba #excel #programowanieobiektowe
set wb = Workbooks.Open(Filename:=File_to_Process(File_Num))
i potem
wb.worksheets("nazwa").range("A1:Z10")
i tak dalej. Workbook z którego jest uruchamiane makro jest dostępny pod stałą ThisWorkbook. Działa tak samo, thisworkbook.worksheets("bla bla") itd.
Komentarz usunięty przez autora
Ten kod działa dobrze, dopóki nie próbuję automatycznie definiować zmiennej stitched_workbook - jeśli jest ona przypisana na stałe, kod działa bardzo dobrze i robi, to co powinien. Chciałem go jednak usprawnić, żeby nie trzeba było wklejać nazwy pliku, która zwykle jest długa
Jeśli z jakiegokolwiek powodu nie chce Ci się odpowiadać, to i tak dzięki za pomoc.
@Asarhaddon: z tego co wiem to bez znaczenia. FileDialog ma większe możliwości jeżeli chodzi o konfigurację, ale tutaj i tak z tego nie korzystałem.
Oba zwracają ścieżkę wybranego pliku. Ewentualnie kolekcję paru ścieżek jeżeli włączysz multiselecta i wybierzesz więcej niż 1