修改vba代码以减少手动输入

时间:2013-02-14 15:34:16

标签: excel-vba vba excel

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

1 个答案:

答案 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")