【发布时间】:2018-05-21 16:31:47
【问题描述】:
在下一个 VBA 循环中我需要您的帮助。我在两列中有一些数据,行之间有空白行。这个宏循环遍历一列并找出它是否包含某个字符。如果它是空白的,那么我希望它移动到下一行。如果它包含“Den”,则选择一个特定的工作表(“D-Temp”),否则选择(“M-Temp”)。 选择正确的工作表后,需要根据行号用第二列的数据填充文本框。到目前为止我创建的代码是
Sub Template()
Dim j As Long
Dim c As Range, t As Range
Dim ws As String
j = 5
With Sheets("Sample ")
For Each c In .Range("I3", .Cells(.Rows.Count, "I").End(xlUp))
If c.Value = "" Then
Next ' `Not getting how to jump to next one`
ElseIf c.Value = "DEN" Then
ws = "D-Temp"
Else
ws = "M-Temp"
End If
For Each t In .Range("P3", .Cells(.Rows.Count, "P").End(xlUp))
If t.Value <> "" Then
j = j + 1
Sheets("M-Temp").Copy after:=Sheets(Sheets.Count)
ActiveSheet.Shapes("Textbox 1").TextFrame.Characters.Text = t.Value
ActiveSheet.Shapes("textbox 2").TextFrame.Characters.Text = t.Offset(, -1).Value
End If
Next
Next
End With
有什么帮助吗?? 以下是我拥有的示例数据:
Type Name 1 Name2
DEN Suyi Nick
'Blank row'
PX Mac Cruise
我希望宏识别类型并根据该选择模板工作表(D 或 M),并分别用名称 1 和名称 2 填充该模板上的文本框。
【问题讨论】:
-
我相信你只需要说“Next j”而不是“Next”。您需要具体说明它应该影响哪个变量。
-
我的错误。我在想别的事。
-
请原谅,但是在循环中用不同的值填充 same 文本框有什么意义呢?
-
@JohnyL 每个模板上有两个文本框。我希望宏根据类型用名称 1 和名称 2 填充这些文本框。
-
@prashant 糟糕,我的错……现在我明白了。当您复制时,新工作表是活动工作表。