Szymon Czyzewski

Szymon Czyzewski dd, REPORTER S.A

Temat: Makro VBA - jak usunąć dodatkowe linie

Witam,
Mam problem z makrem, mianowicie stworzyłem makro które pobiera odpowiednie kolumny z innego pliku i wkleja je w pliku z makrem. Zakres który kopiuje jest większy niż dane zawarte w danym pliku (wspomnę również że są to daty). Dlatego po skopiowaniu danych z datami w pustych kolumnach wyskakuje data 1900-01-01 lub #N/D!.
Co zrobić by po skopiowaniu danych , puste kolumny zostały puste?
To moje makro:

Private Function GetValue(path, file, sheet, ref) As Variant
' GetValue(p,f,s,r)
' p = "T:\Kontraktorzy\MPP\makro"
' f = "ARTWORK.xlsx"
' s = "DATA-ARTWORK"
' ref = "H2:Q1000"

Dim arg As String
Dim nRow, nCol
Dim nRowCount, nColCount
Dim nActRow, nActCol
Dim ArrVal() As Variant
If Right(path, 1) <> "\" Then path = path & "\"
If Dir(path & file) = "" Then
'brak pliku ...
GetValue = CVErr(2042)
Exit Function
End If
nRow = Range(ref).Row
nCol = Range(ref).Column
nRowCount = Range(ref).Rows.Count
nColCount = Range(ref).Columns.Count
ReDim ArrVal(1 To nRowCount, 1 To nColCount)
For nActRow = 1 To nRowCount
For nActCol = 1 To nColCount

arg = "'" & path & _
"[" & file & "]" & _
sheet & "'!" & _
"R" & nRow + nActRow - 1 & _
"C" & nCol + nActCol - 1

ArrVal(nActRow, nActCol) = ExecuteExcel4Macro(arg)
Next
Next
GetValue = ArrVal
End Function

Sub test()
Worksheets("DATA").Activate
p = "T:\Kontraktorzy\MPP\makro"
f = "ARTWORK.xlsx"
s = "DATA-ARTWORK"
Range("W4:AF1000") = GetValue(p, f, s, "H2:Q1000")
' Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Sheets("DATA").Select

Columns("Z:AF").Select
Selection.NumberFormat = "dd-mm-yy"
With Selection
.HorizontalAlignment = xlRight
.VerticalAlignment = xlBottom
End With
End Sub