所以我在excel中有几个非连续的行有一个月(即C3 =" 1月",F3 =" 10月"和H3 =" 12月)。我还没有弄清楚如何使用VBA将所有这些字符串移动到一个单元格中并将它们转换为以下字符串
" 1月,10月和12月"
在所有这些之间添加逗号是可行的,但将最终转换为"和"一直是个问题。
单元格b3:m3中填充的月数会根据不同的公式随机填充,范围从1到4个不同的月份,具体取决于另一行的值。
感谢任何帮助!
答案 0 :(得分:1)
从这样的数据开始:
运行此代码:
Sub months()
Dim wks As Worksheet
Dim rng As Range
Set wks = Worksheets("Sheet4")
Set rng = wks.Range("B3:M3")
Dim count As Integer
count = WorksheetFunction.CountA(rng)
If count < 1 Then Exit Sub
Dim result As String
For Each cell In rng
If Not IsEmpty(cell) Then
result = result & cell.Value
Select Case UBound(Split(result, ","))
Case count - 2
result = result & ", and "
Case count - 1
Case Else
result = result & ", "
End Select
End If
Next cell
MsgBox result
End Sub
结果:
注意:您仍然可以通过编辑原始帖子并包含您在评论中列出的其他要求来挽救您的问题(防止其被关闭)。此外,还应添加任何屏幕截图等以帮助定义您的所有要求。