2013-07-02 67 views
2

我的工作簿有两张纸,其中一张包含数据和计算结果,这些数据都使用名称编辑器功能命名。第二张工作表有一个图形和一个由使用VBA控件Active X选项创建的一组文本框组成的框,这组文本框将被输入先前称为abbove的值,下面是我所用代码的一个版本,其中标签和文本框是文本框的名称,其他名称是定义的单元格的名称。 此代码报告438消息错误,并且不会在所需位置的框中输入带标签的数据。我怎样才能使它发挥作用,使文本框将显示他们有联系过?:VBA中的动态文本框输入

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 
+0

哪里错误发生命名的单元格?你是否尝试过断点/单步执行代码等? –

+0

这是'ActiveSheet(“Label”)。Caption = sType'正确吗?您的其他'Label'参考号码有数字。 –

+0

在标签1和所有下面的行我得到相同的错误438,不知道如何解决它 – user2453446

回答

1

尝试ActiveSheet.TextBox1.Text = sWname