如何在excel上缩短此代码?
是否可以在excel 2010中使此代码更短、更简单如何在excel上缩短此代码?,excel,Excel,是否可以在excel 2010中使此代码更短、更简单 =A1&B1&C1&D1&A2&B2&C2&D2&A3&B3&C3&D3&A4&B4&C4&D4&A5&B5&C5&D5&A6&B6&C6&D6&A7&B7&C7&D7 如果您能告诉我一种可能的缩短方法,我将不胜感激。您可以使用
=A1&B1&C1&D1&A2&B2&C2&D2&A3&B3&C3&D3&A4&B4&C4&D4&A5&B5&C5&D5&A6&B6&C6&D6&A7&B7&C7&D7
如果您能告诉我一种可能的缩短方法,我将不胜感激。您可以使用类似MultiCat的UDF:
'Purpose: Concatenate all cells in a range
'Inputs: rRng - range to be concatenated
' sDelimiter - optional delimiter
' to insert between cell Texts
'Returns: concatenated string
'*****************************************
Public Function MultiCat( _
ByRef rRng As Excel.Range, _
Optional ByVal sDelim As String = "") _
As String
Dim rCell As Range
For Each rCell In rRng
If rCell.Value <> "" Then
MultiCat = MultiCat & sDelim & rCell.Text
End If
Next rCell
MultiCat = Mid(MultiCat, Len(sDelim) + 1)
End Function
'用途:连接范围内的所有单元格
'输入:rRng-要连接的范围
'sDelimiter-可选分隔符
'在单元格文本之间插入
'返回:连接的字符串
'*****************************************
公共功能多播(_
ByRef rRng作为Excel.Range_
可选ByVal sDelim As String=“”)_
作为字符串
变暗rCell As范围
对于rRng中的每个rCell
如果rCell.Value为“”,则
MultiCat=MultiCat&sDelim&rCell.Text
如果结束
下一个rCell
MultiCat=Mid(MultiCat,Len(sDelim)+1)
端函数
在标准模块中,输入以下用户定义的功能:
Public Function KonKat(Rin As Range) As String
Dim r As Range
For Each r In Rin
KonKat = KonKat & r.Value
Next r
End Function
用户定义函数(UDF)非常易于安装和使用:
=KonKat(A1:D7)
要了解有关宏的更多信息,请参阅:
及
及
有关UDF的详细信息
必须启用宏才能工作如果需要非宏/脚本选项,则 =连接(A1、B1、C1、D1、A2、B2、C2、D2、A3、B3、C3、D3、A4、B4、C4、D4、A5、B5、C5、D5、A6、B6、C5、D6、A7、B7、C7、D7) 稍微短一点,简单一点
不确定这是不是你想要的?:) 使用变体数组是避免潜在昂贵的范围循环的快速方法
Sub Moved()
Dim X
Dim lngCnt As Long
Dim StrIn As String
X = Range("A1:D7")
For lngCnt = 1 To UBound(X, 1)
StrIn = StrIn & Join(Application.Index(X, lngCnt))
Next
End Sub
你的表演比加里的快50%。虽然他有一个新的:)还没试过。。。