0

我正在使用下面的代码来帮助自动化我的电子表格,一旦运行,我将使用另一个宏来自动发送电子邮件。我希望在这里实现的是进一步减少用户输入,因为目前,我需要在通过输入框请求时选择一个范围,但希望通过选择在 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
4

1 回答 1

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")
于 2013-02-14T15:40:35.583 回答