Cho Format vào mảng

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

hongphuong1997

Thành viên tiêu biểu
Tham gia
12/11/17
Bài viết
770
Được thích
321
Giới tính
Nữ
Cháu muốn gắn format vào mảng nhưng không được.
Các bác và anh chị hướng dẫn cháu với ạ.
Mã:
Sub Copy_format()
'Cach_1==============
 Dim arr1()
            arr1 = Sheets("1").Range("a1:h7").Value
            arr2 = Sheets("1").Range("a1:h7").Format
            'Sheets("1").Range("a10").Resize(UBound(arr1), UBound(arr1, 2)).NumberFormat = "@"
            Sheets("1").Range("a10").Resize(UBound(arr1), UBound(arr1, 2)) = arr1
            Sheets("1").Range("a10").Resize(UBound(arr1), UBound(arr1, 2)).Formats = arr2
            
'Copy Format **********************
'                Sheets("TH").Range("Md2:My9").Copy
'                 Sheets("Luu_KQ").Range("Me2").PasteSpecial Paste:=xlPasteFormats
'                Application.CutCopyMode = False

 End Sub
 

File đính kèm

  • Gắn format vào mảng.xlsm
    14.2 KB · Đọc: 14
Câu thông báo lỗi ghi rõ ràng rồi: đối với range, trên đời này không hề có phương thức hay thuộc tính Format
Thứ hai: có 1 thứ là NumberFormat, nhưng thứ ấy là 1 dạng lưu trữ vô hình của excel, không gán vào biến mảng được. (gán vào biến đơn thì được)
Mã:
 a = Sheets("1").Range("b1").NumberFormat
 Sheets("1").Range("b10:c15").NumberFormat = a
 
Upvote 0
Viết một cái class, trong đó chứa tất cả các thuộc tính về Forrmat của Object Range.
Cộng thêm một phương thức CopyFormats(rg As Range)

Mảng:
Dim a(1 To 10) As FormatClass
For i = 1 to 10
Set a(i) = New FormatClass
a(i).CopyFormats(Cells(i, "A"))
Next i
 
Upvote 0
Viết một cái class, trong đó chứa tất cả các thuộc tính về Forrmat của Object Range.
Nhiều lắm lắm, không nhớ hết tên: font, cỡ font, kiểu đậm nghiêng, định dạng số/text/ngày tháng, màu tô, màu chữ, 4 cái border(s) (nếu không nói là 6), ... rồi nào lề trái phải, lề trên dưới, ...
Nội cái fill lại còn fill effect, fill gradient, fill pattern, ...
Còn class thì giống trên mây rồi, lại còn phương thức của class ... eo ơi! Chết cháu nó!
 
Upvote 0
Được em nha. Em dùng cái súp siu nhân này xem.

PHP:
Sub copyFormatSiuNhan()
    Const sRange = "A1:H7"
    Const sCellTarget = "ME2"
    
    Dim valRangeXML As String, numRows As Long, numCols As Long, oRange As Range
    Set oRange = Worksheets("1").Range(sRange)
    numRows = oRange.Rows.Count
    numCols = oRange.Columns.Count
    valRangeXML = oRange.Value(XlRangeValueDataType.xlRangeValueXMLSpreadsheet)
    Worksheets("Luu_KQ").Range(sCellTarget).Resize(numRows, numCols).Value(XlRangeValueDataType.xlRangeValueXMLSpreadsheet) = valRangeXML
 End Sub
 
Upvote 0
Được em nha. Em dùng cái súp siu nhân này xem.

PHP:
Sub copyFormatSiuNhan()
    Const sRange = "A1:H7"
    Const sCellTarget = "ME2"
   
    Dim valRangeXML As String, numRows As Long, numCols As Long, oRange As Range
    Set oRange = Worksheets("1").Range(sRange)
    numRows = oRange.Rows.Count
    numCols = oRange.Columns.Count
    valRangeXML = oRange.Value(XlRangeValueDataType.xlRangeValueXMLSpreadsheet)
    Worksheets("Luu_KQ").Range(sCellTarget).Resize(numRows, numCols).Value(XlRangeValueDataType.xlRangeValueXMLSpreadsheet) = valRangeXML
 End Sub
Cháu cảm ơn tất cả các bác ạ @befaint @VetMini @ptm0412 và toàn thể các anh chị đã nhiệt tình chỉ bảo cháu ạ
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom