1

投稿と手順を更新し、オペレーターのエラーをすべて解決しました。手順は、列 E に値を配置する代わりに、列 J に値を配置する代わりに、期待どおりに半分動作するようになりました。列 E から列 B に変更すると、値が G に配置されます。必要な列から右側の 6 列までの値。

これが私のコード全体です。

  Dim xlWB As Excel.Workbook = CType(Globals.ThisWorkbook.Application.ActiveWorkbook, Excel.Workbook)
Dim xlWSPosition As Excel.Worksheet = CType(CType(xlWB.Sheets("byPosition"), Excel.Worksheet), Excel.Worksheet)

                   With xlWSPosition

                .Application.ScreenUpdating = False

                '.Columns("E").Insert(Excel.XlDirection.xlDown)
                '.Range("E1").Value = "Exemption"
                '.Cells.EntireColumn.AutoFit()

                Dim colValue As Excel.Range
                Dim lngLr As Long
                lngLr = .Range("E" & .Rows.Count).End(Excel.XlDirection.xlUp).Row



                .Application.ScreenUpdating = True

                For Each colValue In .Range("F2:F" & .Range("F" & xlWSPosition.Rows.Count).End(XlDirection.xlUp).Row)

                    If colValue.Value > 0 Then

                        colValue.Cells.Range("E2:E" & lngLr).Value = "N"

                    Else

                        colValue.Cells.Range("E2:E" & lngLr).Value = "Y"


                    End If

                Next colValue

            End With
       End Sub

スクリーンショットでわかるように、N 値は E ではなく列 J に移動し、>0 を探すとさらに行が下に移動するようです

電流出力

次のようになります。

予想された結果

4

1 に答える 1

1

このエラー メッセージが表示されるのは、Range(ゼロより大きいかどうかを確認する) を使用して無効な操作を実行しようとしたためです。Value全体ではなく、プロパティでそれを行う必要がありますRange。ここに、物事をよりよく理解するのに役立つコードの修正があります。

For Each range In .Range("F2:F" & .Range("F" & xlWSPosition.Rows.Count).End(XlDirection.xlUp).Row)
   If(range IsNot Nothing AndAlso range.Value.Trim().Length > 0) Then
      Dim colValue As Double = DirectCast(range.Value, Double)
      If colValue > 0 Then
         .Cells(xlWSPosition.Rows, "E").Value = "N"
      Else
         .Cells(xlWSPosition.Rows, "E").Value = "Y"
      End If
   End If
Next

指定されたセルの値はDouble;型であると想定していることに注意してください。colValueこのビット ( のタイプとDirectCastのタイプ) を期待するタイプに適合させてください。

于 2013-09-12T15:27:47.280 に答える