我怎样才能使这个代码更短的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 

如果你能告诉我一个可能的方法来缩短这个,我将不胜感激。

您可以使用像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 

在标准模块中,input以下用户定义的function:

 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)非常易于安装和使用:

  1. ALT-F11调出VBE窗口
  2. ALT-I ALT-M打开一个新的模块
  3. 粘贴东西,closuresVBE窗口

如果保存工作簿,则UDF将随之保存。 如果您在2003年以后使用的是Excel版本,则必须将该文件另存为.xlsm而不是.xlsx

要删除UDF:

  1. 如上所示调出VBE窗口
  2. 清除代码
  3. closuresVBE窗口

从Excel中使用UDF:

 =KonKat(A1:D7) 

要了解有关macros的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

有关UDF的细节

macros必须启用这个工作!

如果你想要一个非macros/脚本选项,那么…

= CONCATENATE(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)

略短而简单

不知道这是你以后? 🙂

使用variables数组是避免潜在的昂贵范围循环的一种快速方法

 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