Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba Excel宏一次连接一行到文件末尾_Vba_Excel_Concatenation - Fatal编程技术网

Vba Excel宏一次连接一行到文件末尾

Vba Excel宏一次连接一行到文件末尾,vba,excel,concatenation,Vba,Excel,Concatenation,我需要一个Excel宏来连接每行上的七列数据,直到到达数据的末尾。例如,如果我有这样一个公式: =A1&B1&C1&D1&E1&F1&G1 如何写入宏,使其按如下顺序从每行递增到文件末尾 =A1&B1&C1&D1&E1&F1&G1 =A2&B2&C2&D2&E2&F2&G2 =A3&B3&C3&D3&E3&F3&

我需要一个Excel宏来连接每行上的七列数据,直到到达数据的末尾。例如,如果我有这样一个公式:

=A1&B1&C1&D1&E1&F1&G1
如何写入宏,使其按如下顺序从每行递增到文件末尾

=A1&B1&C1&D1&E1&F1&G1
=A2&B2&C2&D2&E2&F2&G2
=A3&B3&C3&D3&E3&F3&G3

我认为最简单的方法是按照assylias所说的填写,但如果您想使用VBA:

Selection.AutoFill Destination:=Range("Your Fill Range"), Type:=xlFillDefault

应该跨其他行进行复制。

我认为最简单的方法是按照assylias所说的填写,但如果要使用VBA:

Selection.AutoFill Destination:=Range("Your Fill Range"), Type:=xlFillDefault

应该跨其他行复制。

我100%同意这些评论和其他答案,为什么需要VBA来完成这项工作,但为了回答您最初的问题,我将这样做:

Sub FillAllWithFormula()
Dim i As Variant
Dim wsht As Worksheet

    'If you are using this for a specific Worksheet use the following
    Set wsht = ThisWorkbook.Worksheets(yourWorksheetName)

    'or if you are always using this for the active sheet use the following
    Set wsht = ActiveSheet

    For i = 1 To wsht.Rows.Count
        'Replace "X" with the column letter you want your formula to appear in
        wsht.Range("X" & i).Formula = "=A" & i & "&B" & i & "&C" & i & "&D" & i & "&E" & i & "&F" & i & "&G" & i
    Next

    Set wsht = Nothing

End Sub

我100%同意这些评论和其他答案,为什么你需要VBA来做这件事,但为了回答你最初的问题,我将这样做:

Sub FillAllWithFormula()
Dim i As Variant
Dim wsht As Worksheet

    'If you are using this for a specific Worksheet use the following
    Set wsht = ThisWorkbook.Worksheets(yourWorksheetName)

    'or if you are always using this for the active sheet use the following
    Set wsht = ActiveSheet

    For i = 1 To wsht.Rows.Count
        'Replace "X" with the column letter you want your formula to appear in
        wsht.Range("X" & i).Formula = "=A" & i & "&B" & i & "&C" & i & "&D" & i & "&E" & i & "&F" & i & "&G" & i
    Next

    Set wsht = Nothing

End Sub

有了这么多的答案,我和亚西尔亚斯所强调的主要焦点都白费了:

但是,如果您仍然需要VBA答案。使用这种方法。这比循环或自动填充快得多


如果您有1000行,那么您可能希望在运行代码之前关闭屏幕更新并将计算更改为手动,然后在代码末尾重置它们

有了这么多的答案,我和亚西尔亚斯所强调的主要内容都白费了:

但是,如果您仍然需要VBA答案。使用这种方法。这比循环或自动填充快得多


如果您有1000行,那么您可能希望在运行代码之前关闭屏幕更新并将计算更改为手动,然后在代码末尾重置它们

把公式拖下来对你有用吗?在示例H1:H3中,选择要复制公式的范围,然后按CTRL+D。除非需要重复执行此操作或在更大的宏中执行此操作,否则不需要vba。我同意@assylias。为什么您需要VBA来完成此操作?此外,如果您有很多行,那么您可能会反对向下拖动公式。在这种情况下,您可以将鼠标悬停在单元格的右下角,例如H1,该单元格具有公式。您将注意到光标变为+。只需双击。我假设你把这个公式放在第8列,第7列之间没有空白单元格。这是可行的,但我不知道没有VB也能做到。这曾经是一个宏唯一的东西,我已经好几年没有使用它了。谢谢Charles把公式拖下来对你有用吗?在示例H1:H3中,选择要复制公式的范围,然后按CTRL+D。除非需要重复执行此操作或在更大的宏中执行此操作,否则不需要vba。我同意@assylias。为什么您需要VBA来完成此操作?此外,如果您有很多行,那么您可能会反对向下拖动公式。在这种情况下,您可以将鼠标悬停在单元格的右下角,例如H1,该单元格具有公式。您将注意到光标变为+。只需双击。我假设你把这个公式放在第8列,第7列之间没有空白单元格。这是可行的,但我不知道没有VB也能做到。这曾经是一个宏唯一的东西,我已经好几年没有使用它了。谢谢CharlesThis也可以很好地工作,我更喜欢它,因为无论文件有多大,我都可以单击宏并重新使用它。谢谢CharlesThis也可以很好地工作,我更喜欢它,因为无论文件有多大,我都可以单击宏并重新使用它。谢谢查尔斯