0

隣接する2つの列の値を連結するマクロがあります。それは完璧に動作します。連結が完了したら、2番目の列を削除するコマンドを追加したいと思います。既存のサブルーティング/マクロ内からこれを行うことはできますか、それとも別の関数を呼び出す必要がありますか?これが私が持っているものです:

Option Explicit
Sub Doc1_Doc2_Merge()

Dim CurrCol As Integer
Dim NewValue As String

CurrCol = 1

While Cells(1, CurrCol).Address <> "$JL$1"

    'MsgBox Cells(1, CurrCol).Address & " " & Cells(1, CurrCol).Value
    If InStr(Cells(1, CurrCol).Value, "Doc1") > 0 Then
        ' look at next cell
        If InStr(Cells(1, CurrCol + 1).Value, "Doc2") > 0 Then
            If Trim(Cells(2, CurrCol + 1).Value) <> "" Then
                NewValue = Cells(2, CurrCol).Value & ", " & Cells(2, CurrCol + 1)
                'MsgBox "New Value is " & NewValue
                Cells(2, CurrCol).Value = NewValue
            End If
        End If

    End If
    'now delte currCol+1

    'This is the deletion part that isn't working
    Column(CurrCol + 1).Select
    Selection.Delete Shift:=xlToLeft

    'Advance the counter
    CurrCol = CurrCol + 1
Wend

End Sub
4

2 に答える 2

1

交換

Column(CurrCol + 1).Select

Range(Columns(CurrCol + 1), Columns(CurrCol + 1)).Select
于 2013-02-26T16:29:38.333 に答える
0

Select/Delete 行の代わりにこれを試してください。

  Columns(CurrCol + 1).EntireColumn.Delete 
于 2013-02-26T16:35:02.380 に答える