Excel 如何在VBA中实现范围动态化
下面,我有一个代码,发送个性化的短信,包括姓名。我有那个角色要演。现在,我只需要使我的范围是动态的,并沿着相应的列向下移动,直到没有人留下来留言。在当前状态下,它将只向第一人称发送消息。我试着查找动态范围教程、循环等,但它们要么太复杂,我无法掌握,要么需要我重写已经在使用的内容Excel 如何在VBA中实现范围动态化,excel,vba,Excel,Vba,下面,我有一个代码,发送个性化的短信,包括姓名。我有那个角色要演。现在,我只需要使我的范围是动态的,并沿着相应的列向下移动,直到没有人留下来留言。在当前状态下,它将只向第一人称发送消息。我试着查找动态范围教程、循环等,但它们要么太复杂,我无法掌握,要么需要我重写已经在使用的内容 Private Sub btnSend_Click() Dim contactNumberRange As Range Dim messageRange As Range Dim clientNam
Private Sub btnSend_Click()
Dim contactNumberRange As Range
Dim messageRange As Range
Dim clientNameRange As Range
Dim phoneCell As Range
Dim messageCell As Range
Dim nameCell As Range
Set contactNumberRange = Range("D2") //Need to make this range dynamic
Set messageRange = Range("E2") //This too
Set clientNameRange = Range("A2") //This aswell
For Each phoneCell In contactNumberRange
For Each messageCell In messageRange
For Each nameCell In clientNameRange
SendMessage FROMPHONE, nameCell.Value, phoneCell.Value, messageCell.Value
Next
Next
Next
Me.Hide
End Sub
您只需要使用最后一行变量来扩大范围 此外,请使用工作表确认这些范围
Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")
Dim LR As Long
LR = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
Set contactNumberRange = ws.Range("D2:D" & LR)
Set messageRange = ws.Range("E2:E" & LR)
Set clientNameRange = ws.Range("A2:A" & LR)
For Each phoneCell In contactNumberRange
For Each messageCell In messageRange
For Each nameCell In clientNameRange
SendMessage FROMPHONE, nameCell.Value, phoneCell.Value, messageCell.Value
Next nameCell
Next messageCell
Next phoneCell
对我来说,下一个问题是,为什么这会发送这么多短信?我认为一个循环就能完成OP真正想要的。但这不是这个问题的范围,只是一个想法。我有同样的想法,连接字符串,只给每个人发送一条消息-好吧,这不起作用。当我使用设置为每个范围一个单元格的范围进行测试时,它发送了一条连接消息。使用这段代码,它进行了垃圾邮件发送,消息被分解。我想我必须重写代码才能使用它。