• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Excel - VBA Kopiowanie z innego pliku w pierwszą wolną komórkę nie działa

Aruba Cloud - Virtual Private Server VPS
0 głosów
3,121 wizyt
pytanie zadane 29 czerwca 2016 w Visual Basic przez Zbigniew Andrysiak Bywalec (2,470 p.)

Witajcie.

W poniższym kodzie kopiuję dane z pliku nr 1 do pliku nr 2 dane. Chcę aby te dane zostały umieszczone w pierwszą wolną komórkę kolumny A. I teraz mój problem. W kodzie mam Funkcję pierwszypustywiersz i niestety makro robi mi tak, że jeśli w pliku nr 1 mam 1200 wierszy to makro wkleja dane od 1201 mimo, że w 1 komórka w pliku nr 2 jest pusta. Co robię źle?

Function PierwszyPustyWiersz(Optional Kolumna As String = "A")
   PierwszyPustyWiersz = Application.WorksheetFunction.CountA(ActiveSheet.Columns(Kolumna)) + 1
End Function

Sub DopiszDane()
Dim PustyWiersz As Long
 Dim Filt As String
    Dim FilterIndex As Integer
    Dim FileName As Variant
    Dim Title As String
    Dim wiersz As Long

    
'   Lista plików
    Filt = "Pliki arkusza kalkulacyjnego Excel (*.xls),*.xls," & _
           "Pliki arkusza kalkulacyjnego Excel (*.xlsx),*.xlsx," & _
           "Pliki używające przecinka jako separatora (*.csv),*.csv," & _
           "Wszystkie pliki (*.*),*.*"

'  Otwieranie pliku do importowania
    FilterIndex = 1
    Title = "Wybierz plik do zaimportowania"
    FileName = Application.GetOpenFilename( _
        filefilter:=Filt, _
        FilterIndex:=FilterIndex, _
         Title:=Title)

    If FileName = False Then
        MsgBox "Nie wybrano żadnego pliku."
        Exit Sub
    End If
   

    Set CopyFromWorkbook = Workbooks.Open(FileName)
    Set CopyFromWorksheet = CopyFromWorkbook.Worksheets(1)
    
    CopyFromWorksheet.Range("A1:Aa222").Copy
 
    ThisWorkbook.Worksheets(2).Range("A" & PierwszyPustyWiersz("A")).PasteSpecial Paste:=xlPasteValues
    CopyFromWorkbook.Close savechanges:=False
    

End Sub

 

1 odpowiedź

0 głosów
odpowiedź 29 czerwca 2016 przez Zbigniew Andrysiak Bywalec (2,470 p.)

Ok. Poradziłem sobie, ale wyskakuje mi error 1004 czy ktoś jest w stanie mi pomóc?

 

Sub DopiszDane()
Dim PustyWiersz As Long
 Dim Filt As String
    Dim FilterIndex As Integer
    Dim FileName As Variant
    Dim Title As String
    Dim wiersz As Long
 Application.DisplayAlerts = False 'wyłączenie komunikatów schowka
    Application.DisplayClipboardWindow = False 'wyłączenie komunikatów schowka

    
'   Lista plików
    Filt = "Pliki arkusza kalkulacyjnego Excel (*.xls),*.xls," & _
           "Pliki arkusza kalkulacyjnego Excel (*.xlsx),*.xlsx," & _
           "Pliki używające przecinka jako separatora (*.csv),*.csv," & _
           "Wszystkie pliki (*.*),*.*"

'  Otwieranie pliku do importowania
    FilterIndex = 1
    Title = "Wybierz plik do zaimportowania"
    FileName = Application.GetOpenFilename( _
        filefilter:=Filt, _
        FilterIndex:=FilterIndex, _
         Title:=Title)

    If FileName = False Then
        MsgBox "Nie wybrano żadnego pliku."
        Exit Sub
    End If
   

    Set CopyFromWorkbook = Workbooks.Open(FileName)
    Set CopyFromWorksheet = CopyFromWorkbook.Worksheets(1)
    
    CopyFromWorksheet.Range("a2", Range("a2").End(xlDown).End(xlToRight)).Copy
    'CopyFromWorksheet.Range("A" & Cells.Rows.Count).End(xlUp).Offset(1, 0).Copy
    Range("A" & Cells.Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlValues
  
    CopyFromWorkbook.Close savechanges:=True
  Application.CutCopyMode = True
 
    

End Sub

 

Podobne pytania

0 głosów
0 odpowiedzi 1,306 wizyt
0 głosów
0 odpowiedzi 1,195 wizyt
pytanie zadane 6 sierpnia 2018 w Visual Basic przez SUNBIN Obywatel (1,190 p.)
0 głosów
2 odpowiedzi 5,430 wizyt

93,326 zapytań

142,323 odpowiedzi

322,390 komentarzy

62,654 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...