Я хочу взять список имен, которые находятся в нескольких строках и объединили их в отдельную ячейку как это:
Joe
Bob
George
и преобразуйте это в одну ячейку, которая имеет это:
"Joe", "Bob", "George"
Если функция Excel CONCATENATE ()
не будет делать то, что вы хотите, эта ссылка может помочь.
Это просто. Возможно, вы захотите использовать в сочетании с обрезкой, влево, вправо и найти. Наслаждаться!
= A1 & "" & B1
Вы можете использовать GetString с набором записей ADO.
Dim cn As Object
Dim rs As Object
Dim strFile As String
Dim strCon As String
Dim strSQL As String
Dim s As String
''This is not the best way to refer to the workbook
''you want, but it is very conveient for notes
''It is probably best to use the name of the workbook.
strFile = ActiveWorkbook.FullName
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFile _
& ";Extended Properties=""Excel 8.0;HDR=No;IMEX=1"";"
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
cn.Open strCon
strSQL = "SELECT * " _
& "FROM [Sheet1$A:A] "
rs.Open strSQL, cn, 3, 3
''http://www.w3schools.com/ado/ado_getstring.asp
''str = rs.GetString(format,rows,coldel,rowdel,nullexpr)
s = rs.GetString(, , , ", ")
ActiveSheet.Range("B1") = s
''Tidy up
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
Я знаю два основных способа.
Самый быстрый способ -
Лучше -
Создайте свою собственную функцию vb, которая выполняет итерацию по диапазону ячеек, и вместо того, чтобы суммировать их, как sum
, просто объедините их.
Я делаю это все время, поэтому, если кто-то знает о реальной встроенной функции Excel, скрытой где-то в документации MS, которая объединяет диапазоны, вы спасете положение.