Печать ячеек с текстом только НЕ формула - PullRequest
0 голосов
/ 12 апреля 2020

Привет! Я создал книгу, в которой для заполнения списков используется формула, один из которых использует VBA для печати этикеток.

Моя проблема заключается в том, что VBA видит формулу ячейки в пустых ячейках и хочет печатать пустые теги. Как я могу изменить его, чтобы увидеть только текст?

Как я уже сказал, мне нужно отредактировать свой VBA, чтобы игнорировать формулу и читать только полученный текст.

VBA ниже.


Sub Print_Labels()
    Application.ScreenUpdating = False

    Col_Width_1 = Range("Column_Width_1")
    Col_Width_2 = Range("Column_Width_2")
    Col_Width_3 = Range("Column_Width_3")
    Col_Width_4 = Range("Column_Width_4")

    Row_Height_1 = Range("Row_Height_1")
    Row_Height_2 = Range("Row_Height_2")
    Row_Height_3 = Range("Row_Height_3")
    Row_Height_4 = Range("Row_Height_4")

    Sheets("Equipment_List").Select
    Num_Equip = Range("A1").CurrentRegion.Rows.Count
    Start_Row = Range("Title_Label_Start_Row")
    First_Page_YN = True

    Names.Add "Equipment_List", "=" + Range("A1").Resize(Num_Equip).Address

    Sheets("Labels").Select
    ' Set page setup


    ' Set column widths
    For Count_Label_Columns = 1 To Num_Label_Columns
        Range("A1").Offset(, (Count_Label_Columns - 1) * 
    4).EntireColumn.ColumnWidth = Col_Width_1
        Range("B1").Offset(, (Count_Label_Columns - 1) * 
    4).EntireColumn.ColumnWidth = Col_Width_2
        Range("C1").Offset(, (Count_Label_Columns - 1) * 
    4).EntireColumn.ColumnWidth = Col_Width_3
        Range("D1").Offset(, (Count_Label_Columns - 1) * 
    4).EntireColumn.ColumnWidth = Col_Width_4
    Next Count_Label_Columns

    ' Set row heights
    For Count_Label_Rows = 1 To Num_Label_Rows
        Range("A1").Offset((Count_Label_Rows - 1) * 4).EntireRow.RowHeight = 
    Row_Height_1
        Range("A2").Offset((Count_Label_Rows - 1) * 4).EntireRow.RowHeight = 
    Row_Height_2
        Range("A3").Offset((Count_Label_Rows - 1) * 4).EntireRow.RowHeight = 
    Row_Height_3
        Range("A4").Offset((Count_Label_Rows - 1) * 4).EntireRow.RowHeight = 
    Row_Height_4
    Next Count_Label_Rows

    ' Work out the first label row to be printed
    If Start_Row > 10 Then Start_Row = 10
    Count_Label_Rows = Start_Row

    ' Labels always start printing in the first column
    Count_Label_Columns = 0

    For Count_Equip = 1 To Num_Equip

        ' Start of new page of labels, so completely clear sheet
        If First_Page_YN = True Then
            Cells.Clear
            First_Page_YN = False
        End If

        Count_Label_Columns = Count_Label_Columns + 1
        If Count_Label_Columns > Num_Label_Columns Then
            Count_Label_Columns = 1
            Count_Label_Rows = Count_Label_Rows + 1
        End If
        If Count_Label_Rows > Num_Label_Rows Then
            Count_Label_Rows = 1
            Count_Label_Columns = 0
        End If

        If Count_Label_Rows = 1 And Count_Label_Columns = 0 Then
            ' Start of new page, so print full sheet
            If Range("Title_Print_Preview") = "Print" Then
                ActiveSheet.PrintOut
            Else
                ActiveSheet.PrintPreview
            End If
            Cells.Clear
            Count_Label_Columns = 1
        End If

        Range("Title_Label_Format").Copy
        Range("Labels_Top").Offset(((Count_Label_Rows - 1) * 4), 
      ((Count_Label_Columns - 1) * 4) + 1).PasteSpecial
        Range("Labels_Top").Offset(((Count_Label_Rows - 1) * 4) + 2, 
      ((Count_Label_Columns - 1) * 4) + 2) = _
            Range("Equipment_List").Offset(Count_Equip - 1).Resize(1, 1)
        ' Enter the sequence number of the equipment
        Range("Labels_Top").Offset(((Count_Label_Rows - 1) * 4), 
    ((Count_Label_Columns - 1) * 4) + 3) = Count_Equip
    Next Count_Equip

    ' Print or Preview the last sheet
    If Range("Title_Print_Preview") = "Print" Then
        ActiveSheet.PrintOut
    Else
        ActiveSheet.PrintPreview
    End If
    Application.ScreenUpdating = True
End Sub
-------------------------------------------------------------------------------
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...