首页 > 解决方案 > VBA代码根据另一张表中的值在Excel中插入值

问题描述

我正在尝试根据上一列中提供的“切换时间”将程序名称插入“F 列”。“切换时间”与主表(sheet1)进行比较,以查看切换发生时正在运行的程序。这是使用的两张纸。

在此处输入图像描述

在此处输入图像描述

但是在运行时,我收到错误消息“范围类的选择方法失败”。

Sub Protest()
    Dim chno, swtime, stime, ftime As Integer, swprog As String
    Sheets("Sheet2").Select
    Range("F1").Select

    Do Until Selection.Offset(0, -3).Value = ""
        chno = Selection.Offset(0, -3).Value
        swtime = Selection.Offset(0, -1).Value
        If chno = "1" Then
            Sheets("Sheet1").Range("E4").Select
            Do Until Selection.Offset(0, 0).Value = ""
                stime = Selection.Offset(0, 0).Value
                ftime = Selection.Offset(0, 1).Value
                If swtime >= stime And swtime <= ftime Then
                    swprog = Selection.Offset(0, -1).Value
                End If
                Selection.Offset(1, 0).Select
            Loop
        End If

        If chno = "2" Then
            Sheets("Sheet1").Range("I4").Select
            Do Until Selection.Offset(0, 0).Value = ""
                stime = Selection.Offset(0, 0).Value
                ftime = Selection.Offset(0, 1).Value

                If swtime >= stime And swtime <= ftime Then

                    swprog = Selection.Offset(0, -1).Value
                End If


                Selection.Offset(1, 0).Select
            Loop

        End If

        If chno = "3" Then
            Sheets("Sheet1").Range("M4").Select
            Do Until Selection.Offset(0, 0).Value = ""
                stime = Selection.Offset(0, 0).Value
                ftime = Selection.Offset(0, 1).Value

                If swtime >= stime And swtime <= ftime Then

                    swprog = Selection.Offset(0, -1).Value
                End If


                Selection.Offset(1, 0).Select
            Loop

        End If

        Selection.Value = swprog
        Selection.Offset(1, 0).Select
    Loop

    Range("A1").Select
End Sub

标签: excelvba

解决方案


推荐阅读