我使用以下代码来帮助自动化我的电子表格,一旦运行,我正在使用另一个宏来自动发送电子邮件。 我希望在这里实现的目的是进一步减少用户输入,目前我需要通过输入框选择一个范围,但是想通过选择VBA中预先确定的范围来实现自动化。
我相信它是我需要更新的application.inputbox区域,但是已经浏览了其他帖子,但却找不到任何会否定手动输入的内容。
Sub JoinCells()
Set xJoinRange = Application.InputBox(prompt:="Highlight source cells to merge", Type:=8)
xSource = 0
xSource = xJoinRange.Rows.Count
xType = "rows"
If xSource = 1 Then
xSource = xJoinRange.Columns.Count
xType = "columns"
End If
Set xDestination = Application.InputBox(prompt:="Highlight destination cell", Type:=8) If xType = "rows" Then
temp = xJoinRange.Rows(1).Value
For i = 2 To xSource
temp = temp & " " & xJoinRange.Rows(i).Value
Next i
Else
temp = xJoinRange.Columns(1).Value
For i = 2 To xSource
temp = temp & " " & xJoinRange.Columns(i).Value
Next i
End If
xDestination.Value = temp
End Sub
答案 0 :(得分:1)
我认为您正在寻找Range。
您可以轻松设置所需的任何范围:
Dim xJoinRange as Range, xDestination as Range
xJoinRange = Range("D3:E45")
xDestination = Range("G3:H45")
现在,这将始终在当前/活动工作表中对此范围起作用。
如果要在特定工作表中指定范围,则需要Worksheets()
这样:
Dim xJoinRange as Range, xDestination as Range
xJoinRange = Worksheets("myWorksheetName").Range("D3:E45")
xDestination = Worksheets("myWorksheetName").Range("G3:H45")