连接产生错误,下划线
我正在尝试创建一个宏,该工作表中带有该表的名称并将其与文本组合在一起。例如,对于表1,我希望它在Sheet1的I5中说“ThisIs_Sheet1_Test”。有几张纸,但它应该适用于所有人。连接产生错误,下划线
我的代码有什么问题?我认为下划线可能会毁了这一切。下面是我有:
Dim SheetName As String
Public Sub CommandButton1_Click()
SheetName = ActiveSheet.Name
Sheets("Sheet1").Range("I5", "I5") = ThisIs_" & SheetName.text & "_Test
Sheets("Sheet2").Range("H5", "H5") = ThisIs_" & SheetName.text & "_Test
Sheets("Sheet3").Range("G5", "G5") = ThisIs_" & SheetName.text & "_Test
End Sub
除了缺少报价,SHEETNAME是一个字符串,而不是一个对象,所以它不会有一个Text属性。您是否希望工作表名称随工作表更改而更改?你需要这个:
Private Sub CommandButton1_Click()
Dim ws As Worksheet
For Each ws In Me.Parent.Worksheets
ws.Range("I5").Value = "ThisIs_" & ws.Name & "_Test"
Next ws
End Sub
看起来像一个报价问题。 ThisIs_
和_Test
是字符串,对吧?所以行情应该是他们身边,不在身边& SheetName.text &
Sheets("Sheet1").Range("I5", "I5") = "ThisIs_" & SheetName.text & "_Test"
糟糕,好的呼叫,越来越近......看看我上面的回答 – Daniel 2010-05-28 13:47:31
我能够得到它的工作......有点。现在
,它显示ThisIS_Sheet1_Test在Sheet1等
不过,我把它设置为从一个列表框提取数据到一个我称之为ThisIS_Sheet1_Test功能。我想,一旦我得到了它的显示的名称,它会拉的功能这里是我有以上。
Public Sub ListBox2_LostFocus()
ListBox2.Height = 15
With ListBox2
ThisIS_Sheet1_Test = "'"
For i = 0 To .ListCount - 1
If .Selected(i) Then
ThisIS_Sheet1_Test = ThisIS_Sheet1_Test & .List(i) & "','"
End If
Next i
End With
ThisIS_Sheet1_Test = Left(ThisIS_Sheet1_Test, Len(ThisIS_Sheet1_Test) - 2)
End Sub
为什么当我得到的文本,我希望它不会转化为函数I认为它会。
在寻找其他人的帮助之前,您可以花几分钟编译代码(在VBA窗口中,调试 - >编译VBA项目)?那会尖叫遗漏了您的报价,对变量的字符串等
Public Sub dummy()
Dim SheetName As String
SheetName = ActiveSheet.Name
Sheets("Sheet1").Range("I5", "I5") = "ThisIs_" & SheetName & "_Test"
Sheets("Sheet2").Range("H5", "H5") = "ThisIs_" & SheetName & "_Test"
Sheets("Sheet3").Range("G5", "G5") = "ThisIs_" & SheetName & "_Test"
End Sub
下划线携带VBA/VB世界特殊含义使用。文本。它的代码concatination(意思是如果你的代码太长,并且你想要将它分成两行,那么你把一个空格用下划线(_)和下一行继续,还有Dick Kusleika是关于对象/字符串的。将有不同的peopreties(.Text意味着您要求该对象的Text属性),并且通常该Text属性将是String类型。在这里您已经有一个字符串,并且您将它原样使用。
我想技术上这个问题已被回答。但出来它出生了一个新的问题: http://stackoverflow.com/questions/2949739/pull-in-earlier-value-using-concatenation – Daniel 2010-06-01 12:34:52
每个页面的范围是不同的我怎样才能改变它 另外,如果我拿出来,我可以使用我的代码来显示表格名称“ThisIs_”和“_Test”。所以我不确定你提到的字符串/对象是否有区别。 – Daniel 2010-05-28 12:20:25
对不起,Daniel,我没有注意范围的变化。如果您已经对表格名称进行了硬编码(例如Sheets(“Sheet1”)),为什么不只是使用 表格(“Sheet1”)。Range(“I5”)。Value =“ThisIs_Sheet1_Test” 我得到当我尝试编译你的代码时,“invalid qualifier”意味着没有String变量的Text属性。我们必须错过一些东西。 – 2010-05-28 15:09:34
你上面看到我的答案了吗?我不确定它为什么如此,但现在我遇到了一个全新的问题! – Daniel 2010-05-28 15:35:00