Aktywne Wpisy

Bill_Kilgore +1003
źródło: 1000059447
Pobierz
mirko_anonim +6
✨️ Jak poradzić sobie z problemami w związku z osobą chorującą na nerwicę? Ⓘ
Cześć, od roku jestem w związku z dziewczyną, ma 22 lata, ona choruje na nerwicę lękową.
Mieszka w jednym mieszkaniu w bloku z rodzicami i dziadkami, dowiedziałem się o tym po kilku miesiącach związku. Jej rodzice mają kasę na własne mieszkanie, a z tego co wiem jej ojciec kiedyś nalegał na kupno mieszkania, jej mama nigdy się nie wyprowadziła.
Problem
Cześć, od roku jestem w związku z dziewczyną, ma 22 lata, ona choruje na nerwicę lękową.
Mieszka w jednym mieszkaniu w bloku z rodzicami i dziadkami, dowiedziałem się o tym po kilku miesiącach związku. Jej rodzice mają kasę na własne mieszkanie, a z tego co wiem jej ojciec kiedyś nalegał na kupno mieszkania, jej mama nigdy się nie wyprowadziła.
Problem





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
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.