Đây là trở ngại mà dường như luôn luôn gặp phải khi tạo bảng hoặc đồ họa trong Excel. Xét ví dụ dưới đây, chúng ta bắt đầu với “Ohio” và sau đó copy nó đến các ô khác để tạo “Iowa” và “ Maine”.
Vấn đề xảy ra khi bạn cố copy cả định dạng font chữ và shape tới một địa chỉ ô khác. Vì một vài lý do, Excel muốn reset lại font chữ sau khi cách thức thay đổi. Vì vậy, bạn sẽ phải quay lại và định dạng lại font chữ cho mỗi hình ( có thể làm thủ công hoặc sử dụng Format Painter)
GIẢI PHÁP
Với giải pháp sử dụng Macro, bạn có thể chọn Shape muốn thay đổi, sau đó hiệu chỉnh link địa chỉ ô trong khi vẫn giữ nguyên định dạng text.
Mã VBA lưu trữ định dạng font trước khi công thức thay đổi và áp dụng lại tới Shape.
GIẢI PHÁP VBA MACRO
Dưới đây là mã được sử dụng thường xuyên khi tạo bảng hoặc thiết kế đồ họa, cần thiết khi trưng bày dữ liệu. Tất cả điều bạn cần làm là copy mã này vào Personal Macro workbook và truy cập nó khi cần.
Sub LinkShape_RetainFormat() ‘PURPOSE: Prevent The Resetting Of Font Format When Changing An Excel Shape’s Formula ‘SOURCE: www.TheSpreadsheetGuru.comDim shp As Shape Dim LinkCell As Range Dim FontBold As Boolean Dim FontItalic As Boolean Dim FontColor As Long Dim FontSize As Long Dim FontUnderline As Long Dim FontName As String Dim myAnswer As Variant’Determine If Selection Is A Shape On Error GoTo InvalidSelection Set shp = ActiveSheet.Shapes(Selection.Name) On Error GoTo 0 ‘Store Current Font Settings ‘Ask User For New Cell To Link To ‘Change Shape’s Cell Link ‘Restore Original Font Settings ‘Scroll Back to Selected Shape If myAnswer = vbYes Then Exit Sub ‘ERROR HANDLERS UserCancelled: End Sub |
[ Tùy chọn] Tự động dẫn đến ô gần nhất
Dưới đây là macro tương tự như trên, tuy nhiên có một sự thay đổi có thể xem là hữu ích như sau. Nó có chức năng tự động dẫn hộp input tới địa chỉ ô gần nhất. Điều này hữu dụng khi dữ liệu của bạn nằm cách xa so với Shape.
Sub LinkShape_RetainFormat2() ‘PURPOSE: Prevent The Resetting Of Font Format When Changing An Excel Shape’s Formula ‘SOURCE: www.TheSpreadsheetGuru.comDim shp As Shape Dim LinkCell As Range Dim FontBold As Boolean Dim FontItalic As Boolean Dim FontColor As Long Dim FontSize As Long Dim FontUnderline As Long Dim FontName As String Dim myAnswer As Variant’Determine If Selection Is A Shape On Error GoTo InvalidSelection Set shp = ActiveSheet.Shapes(Selection.Name) On Error GoTo 0 ‘Store Current Font Settings ‘Ask User For New Cell To Link To (Default To Current Formula) ‘Change Shape’s Cell Link ‘Restore Original Font Settings ‘Scroll Back to Selected Shape If myAnswer = vbYes Then Exit Sub ‘ERROR HANDLERS UserCancelled: End Sub |
Xem thêm: Cách đổi font chữ mặc định trong các phiên bản Word