0

Excel で A 列をループしようとしています。値があるかどうかを確認し、ある場合は b 列の隣接するセルに移動し、その値を確認して保存し、検索に使用します。

A列を通るループはまだ機能していません。私は何百もの例を見てきましたが、私が持っているものはうまくいくはずです。

誰かが欠けているものを指摘できますか? これは私のコードです:

Sub AdjacentRow()

    Dim xlWrkBk As Excel.Workbook

    Dim xlsht As Excel.Worksheet
    Dim xl As Excel.Application

    Set xl = CreateObject("Excel.Application")
    Set xlWrkBk = GetObject("C:\Users\my_username\Desktop\AgileProjects\ITAG Open Interactions.xlsx")
    Set xlsht = xlWrkBk.Worksheets(1)

    Dim i, j, FirstCell, LastCell As Integer
    Dim strIMresult As String


    Dim Cell, Row, Column As Excel.Range

    'Set Cell = Range("A9").End(xlDown)
    'Set Cell = Range([a1], [a250])

    For Each Row In Range("A9:A250").Rows
        If Not IsEmpty(ActiveCell.Value) Then
            'move to adjacent cell
            ActiveCell.Offset(0, 1).Select
            If Not IsEmpty(ActiveCell.Value) Then
                'copy the value
                strIMresult = ActiveCell.Value
                'ActiveCell.Offset(1, 0).Select
                'ActiveCell = strIMresult
                Debug.Print strIMresult
            Else
                ActiveCell.Offset(0, -1).Select
            End If
        End If
    Next Row

End Sub
4

4 に答える 4

0

これがうまくいきました:

Sub AdjacentRow()

    Dim xlWrkBk As Excel.Workbook

    Dim xlsht As Excel.Worksheet
    Dim xl As Excel.Application

    Set xl = CreateObject("Excel.Application")

    Set xlWrkBk = GetObject("C:\Users\My_Account\Desktop\tst.xlsx")
    Set xlsht = xlWrkBk.Worksheets(1)

    Dim i, j, FirstCell, LastCell As Integer
    Dim strIMresult As String


    Dim Cell, Row, Column As Excel.Range

    For Each Row In xlsht.Range("A9:A250").Rows
        For Each Cell In Row.Cells

            If Len(Cell.Value) > 0 Then
                'move to adjacent cell
                ActiveCell.Offset(0, 1).Select

                If Len(ActiveCell.Value) > 0 Then
                    'copy the value
                    strIMresult = ActiveCell.Value

                    Debug.Print strIMresult
                Else
                    ActiveCell.Offset(0, -1).Select
                End If
            End If
        Next Cell
    Next Row
End Sub

最終的に修正は次のとおりでした

For Each Row In Range("A9:A250").Rows

に変更

For Each Row In xlsht.Range("A9:A250").Rows

ループする必要のあるワークシートを指定します。次に、

For Each Cell In Row.Cells
于 2013-04-09T14:14:39.790 に答える