VBA Code:
Dim tbl As ListObject
Dim columns_names() As Variant
columns_names = Array("Nr referencyjny", "Data efektywna", "Data księgowania", "Strona operacji", "Waluta", "Kwota", "Kod SWIFT", "Nr ref. Klienta", _
"Opis", "GVC", "Kod operacji", "Kod operacji", "Tytuł operacji", "Kontrahent", "Nazwa skrócona kontrahenta", "Adres kontrahenta", "Adres kontrahenta 2", _
"ID banku kontrahenta", "ID rachunku kontrahenta", "Rachunek kontrahenta", "Kod rekoncyliacji", "Główny nr referencyjny")
Set tbl = current_sheet.ListObjects.Add(xlSrcRange, Range("A6"), xlYes)
For i = 0 To UBound(columns_names)
If i = 0 Then
tbl.ListColumns(tbl.ListColumns.Count).Name = columns_names(i)
Else
tbl.ListColumns.Add
tbl.ListColumns(tbl.ListColumns.Count).Name = columns_names(i)
End If
Next i
current_sheet.ListObjects("tbl").ListColumns("Nr referencyjny").DataBodyRange.NumberFormat = "@"
' current_sheet is an Sub argument
' OR
tbl.ListColumns("Data efektywna").DataBodyRange.Style = "Short Date"
' OR
Set tbl.ListColumns("Data księgowania").DataBodyRange.Style = "Short Date"
I'm always getting "subscription out of range" or "object not set" errors.
I was seen some code examples, where ListColumns object is assigned to variable, and then style or NumberFormat is applying to variable, like:
VBA Code:
Dim v as ListColumn
Set v as tbl.ListColumns("Nr referencyjny")
v.DataBodyRange.NumberFormat = "@"
Why it is necessary to use extra variable and I cannot simply refer to tbl.ListColumns("Column_header")?
Or it is possible, and I'm doing something wrong?