Задачей является объединение строк перед отправкой по почте.поэтому я создал кнопку для конкатенации и электронной почты, которая работает правильно.Но тут возникает проблема, меня спросили , возможно ли показать результат (объединенный результат), как только я нажму на кнопку вместо нажатия кнопки n, выберите диапазон .
, если это таккак мне это сделать?
*, так как мне нужно отправить нескольким получателям в одном письме, что у меня не было проблемы в коде
текущий в моем Excel
Sheet1 должен показать результат ячеек Concatenate в листе 2
пример
Sheet1 A1 (К списку) адрес электронной почты1, адрес электронной почты2, адрес электронной почты3, адрес электронной почты4
Лист1 B1 (список Cc)) адрес электронной почты1, адрес электронной почты2, адрес электронной почты3, адрес электронной почты3
Sheet1 C1 (список BCC) адрес электронной почты1, адрес электронной почты2, адрес электронной почты3, адрес электронной почты4
лист2 A1 (в список) *, отображаемый в виде строк
адрес электронной почты1адрес электронной почты2 адрес электронной почты3 адрес электронной почты3 адрес электронной почты4
то же самое относится к списку CC n BCC
это мой код, который я использую
Sub Concatenate()
'Creates a basic CONCATENATE formula with no options
Call Concatenate_Formula(True, False)
end sub
Sub Concatenate_Formula(bConcat As Boolean, bOptions As Boolean)
Dim rSelected As Range
Dim c As Range
Dim sArgs As String
Dim bCol As Boolean
Dim bRow As Boolean
Dim sArgSep As String
Dim sSeparator As String
Dim rOutput As Range
Dim vbAnswer As VbMsgBoxResult
Dim lTrim As Long
Dim sTitle As String
Dim sActive As String
Dim sSheetRef As String
'Set variables
Set rOutput = ActiveCell
sActive = ActiveSheet.Name
bCol = False
bRow = False
sSeparator = ""
sTitle = IIf(bConcat, "CONCATENATE", "Ampersand")
'Prompt user to select cells for formula
On Error Resume Next
Set rSelected = Application.InputBox(Prompt:= _
"Select cells to create formula", _
Title:=sTitle & " Creator", Type:=8)
On Error GoTo 0
'Only run if cells were selected and cancel button was not pressed
If Not rSelected Is Nothing Then
'Set argument separator for concatenate or ampersand formula
sArgSep = IIf(bConcat, ",", "&")
'Prompt user for absolute ref and separator options
If bOptions Then
vbAnswer = MsgBox("Columns Absolute? $A1", vbYesNo)
bCol = IIf(vbAnswer = vbYes, True, False)
vbAnswer = MsgBox("Rows Absolute? A$1", vbYesNo)
bRow = IIf(vbAnswer = vbYes, True, False)
sSeparator = Application.InputBox(Prompt:= _
"Type separator, leave blank if none.", _
Title:=sTitle & " separator", Type:=2)
End If
If rSelected.Parent.Name <> sActive Then
sSheetRef = "'" & rSelected.Parent.Name & "'!"
Else
sSheetRef = ""
End If
'Create string of cell references
For Each c In rSelected.Cells
sArgs = sArgs & sSheetRef & c.Address(bRow, bCol) & sArgSep
If sSeparator <> "" Then
sArgs = sArgs & Chr(34) & sSeparator & Chr(34) & sArgSep
End If
Next
'Trim extra argument separator and separator characters
lTrim = IIf(sSeparator <> "", 4 + Len(sSeparator), 1)
sArgs = Left(sArgs, Len(sArgs) - lTrim)
'Create formula
'Warning - you cannot undo this input
'If undo is needed you could copy the formula string
'to the clipboard, then paste into the activecell using Ctrl+V
If bConcat Then
rOutput.Formula = "=CONCATENATE(" & sArgs & ")"
Else
rOutput.Formula = "=" & sArgs
End If
End If
End Sub