excel - 如何通过在 VBA 中使用参考单元格将多个字符串组合到一个单元格中?
问题描述
我有一个 VBA 宏代码,它使用自动筛选语法返回给定搜索条件的搜索结果。
此代码的目的是搜索文献结果并将所有结果直接返回到 Excel。
我遇到的问题是当前代码只是在整个搜索结果表中列出所有作者,并将它们列在 A 列中,一次一个作者。
对于每个标题都有多个作者,所以我想使用一个函数将相应文章标题的所有作者结果组合到一个单元格中。
如何更改当前代码以使用由“SO”标识的最后一个单元格作为参考点,将所有作者组合为一个字符串并将它们返回到一个单元格中。
Sub ReturnFAUResults()
Dim r As Range
Application.ScreenUpdating = True
With Worksheets("Sheet1") ' reference results sheet
If IsEmpty(.Range("A1")) Then .Range("A1").Value = "dummy header" ' if A1 is empty, put a "dummy" header to make AutoFilter work properly
.AutoFilterMode = False
With .Range("B1", .Cells(.Rows.Count, 2).End(xlUp)).Offset(, -1) ' reference referenced sheet column A range from row 1 down to column B last not empty cell
.SpecialCells(xlCellTypeBlanks).Formula = "=R[-1]C" ' fill referenced range blank cells with the same value as the not empty cell above
.AutoFilter Field:=1, Criteria1:="=FAU"
On Error Resume Next
Set r = .Resize(.Rows.Count - 1, 1).Offset(1, 1).SpecialCells(xlCellTypeVisible)
On Error GoTo 0
If Not r Is Nothing Then r.Copy Worksheets("Search Results").Range("A7")
.Parent.AutoFilterMode = False
.SpecialCells(xlCellTypeFormulas).ClearContents ' clear cell with formulas
If .Range("A1").Value = "dummy header" Then .Range("A1").ClearContents ' remove any "dummy" header
End With
End With
Application.ScreenUpdating = True
End Sub