ввод динамического текстового поля в VBA

моя рабочая книга имеет два листа, один из которых содержит данные и расчеты, эти данные были названы с использованием функции редактора имен. на втором листе есть график и поле, состоящее из группы текстовых полей, созданных с помощью параметра Active X управления VBA, этой группе текстовых полей должны быть присвоены значения, ранее названные abbove, ниже приведена версия кода, который я использовал, где label и TextBox — это имена текстовых полей, а другие имена — это имена определенных ячеек. Этот код сообщает об ошибке сообщения 438 и не будет вводить помеченные данные в поле в нужном месте. Как я могу заставить его работать так, чтобы в текстовых полях отображались именованные ячейки, с которыми они связаны?:

Private Sub Worksheet_Activate()
Dim sType As String
Dim sUnit As String
Dim sWellname As String
Dim sDate As String
Dim sMD As String
Dim sTVD As String
Dim sMud As String
Dim sPressure As String
Dim sEMW As String

    sType = ThisWorkbook.Worksheets("sheet1").cbztest.Value
    sUnit = ThisWorkbook.Worksheets("sheet1").cbzPressure.Value
    sWname = ThisWorkbook.Worksheets("sheet1").Range("Wname").Value
    sDate = ThisWorkbook.Worksheets("sheet1").Range("date").Value
    sMD = Format(ThisWorkbook.Worksheets("sheet1").Range("MD").Value, "Standard")
    sTVD = Format(ThisWorkbook.Worksheets("sheet1").Range("TVD").Value, "Standard")
    sMW = ThisWorkbook.Worksheets("sheet1").Range("M_W").Value
    sPressure = Round(ThisWorkbook.Worksheets("sheet1").Range("P_bar").Value, 1)
    sEMW = Format(ThisWorkbook.Worksheets("sheet1").Range("EMW").Value, "Standard")

    sType = ThisWorkbook.Worksheets("sheet1").cbztest.Value
    ActiveSheet("Label").Caption = sType
    ActiveSheet("TextBox1").Text = sWname
    ActiveSheet("TextBox2").Text = sDate
    ActiveSheet("TextBox5").Text = sMD
    ActiveSheet("TextBox6").Text = sTVD
    ActiveSheet("TextBox7").Text = sMW
    ActiveSheet("TextBox8").Text = sPressure
    ActiveSheet("TextBox9").Text = sEMW
    ActiveSheet("Label8").Caption = sType & " EMW :"
    ActiveSheet("Label13").Caption = sUnit

End Sub

person user2453446    schedule 02.07.2013    source источник
comment
Где возникает ошибка? Вы пробовали точки останова/пошаговое выполнение кода и т. д.?   -  person Skip Intro    schedule 02.07.2013
comment
Это ActiveSheet("Label").Caption = sType правильно? Другие ваши Label ссылки имеют номера.   -  person Skip Intro    schedule 02.07.2013
comment
на метке 1 и во всех следующих строках я получаю ту же ошибку 438 и не знаю, как ее решить   -  person user2453446    schedule 02.07.2013
comment
да, даже если я помещу эту строку в комментарий, я все равно получу то же сообщение об ошибке для приведенного ниже. Я использую правильный метод ввода?   -  person user2453446    schedule 02.07.2013
comment
что такое .cbztest. и .cbzPressure.? Я думаю, вы можете получить сообщение об ошибке, поскольку класс Range неправильно переопределен.   -  person    schedule 02.07.2013
comment
это значения, отображаемые в полях со списком Active X, извините за то, что не указали эти две переменные.   -  person user2453446    schedule 02.07.2013


Ответы (1)


Попробуйте ActiveSheet.TextBox1.Text = sWname и так далее

person barrowc    schedule 03.07.2013