2
私は電気倉庫の回路にラベルを付けるための視覚的支援をしていますが、それらを特定したいと思いますが、時にはそれがうまく機能します(最初の2つのラベルでのみです。コード:なぜこのコードが動作するのはなぜですか、時にはそうではありませんか?
点は時々CircuitNameであることである:私はこのセルを埋めるためにふり、この(ビジュアル・ワークシート)
とDB_Rangeと
Public Sub VisualAids()
Dim DB_Range, StartVisuals As range
Dim Origen As range
Set DB_Range = Worksheets("DBCircuits").range("B2:K573")
Set Origen = Worksheets("visuales").range("C2")
Dim i, j, TotalLabels, LabelsCounter As Integer
Dim Labels As Integer
Dim CircuitName, Location, Color1, Color2, DailyReq, StdPack As String
TotalLabels = Application.WorksheetFunction.Sum(Worksheets("DBCircuits").range("K2:K573"))
For i = 1 To TotalLabels
CircuitName = DB_Range.Cells(i, 1)
Location = DB_Range.Cells(i, 8)
Color1 = DB_Range.Cells(i, 6)
Color2 = DB_Range.Cells(i, 7)
DailyReq = DB_Range.Cells(i, 3)
StdPack = DB_Range.Cells(i, 4)
Labels = DB_Range.Cells(i, 10)
For j = 1 To Labels
Origen.Offset(0, 1) = CircuitName
Origen.Offset(1, 1) = Location
Origen.Offset(3, 1) = DailyReq
Origen.Offset(4, 1) = StdPack
Select Case Color1
Case "0"
Origen.Offset(2, 3).Interior.Color = RGB(0, 0, 0)
Origen.Offset(2, 5).Interior.Color = RGB(0, 0, 0)
Case "1"
Origen.Offset(2, 3).Interior.Color = RGB(153, 102, 51)
Origen.Offset(2, 5).Interior.Color = RGB(153, 102, 51)
Case "2"
Origen.Offset(2, 3).Interior.Color = RGB(255, 0, 0)
Origen.Offset(2, 5).Interior.Color = RGB(255, 0, 0)
Case "3"
Origen.Offset(2, 3).Interior.Color = RGB(255, 102, 0)
Origen.Offset(2, 5).Interior.Color = RGB(255, 102, 0)
Case "4"
Origen.Offset(2, 3).Interior.Color = RGB(255, 255, 0)
Origen.Offset(2, 5).Interior.Color = RGB(255, 255, 0)
Case "5"
Origen.Offset(2, 3).Interior.Color = RGB(0, 255, 0)
Origen.Offset(2, 5).Interior.Color = RGB(0, 255, 0)
Case "6"
Origen.Offset(2, 3).Interior.Color = RGB(0, 176, 240)
Origen.Offset(2, 5).Interior.Color = RGB(0, 176, 240)
Case "7"
Origen.Offset(2, 3).Interior.Color = RGB(0, 176, 240)
Origen.Offset(2, 5).Interior.Color = RGB(0, 176, 240)
Case "8"
Origen.Offset(2, 3).Interior.Color = RGB(128, 128, 128)
Origen.Offset(2, 5).Interior.Color = RGB(128, 128, 128)
Case "9"
Origen.Offset(2, 3).Interior.Color = RGB(255, 255, 255)
Origen.Offset(2, 5).Interior.Color = RGB(255, 255, 255)
Case Else
Origen.Offset(2, 3).Value = "-"
Origen.Offset(2, 5).Value = "-"
End Select
Select Case Color2
Case "0"
Origen.Offset(2, 4).Interior.Color = RGB(0, 0, 0)
Case "1"
Origen.Offset(2, 4).Interior.Color = RGB(153, 102, 51)
Case "2"
Origen.Offset(2, 4).Interior.Color = RGB(255, 0, 0)
Case "3"
Origen.Offset(2, 4).Interior.Color = RGB(255, 102, 0)
Case "4"
Origen.Offset(2, 4).Interior.Color = RGB(255, 255, 0)
Case "5"
Origen.Offset(2, 4).Interior.Color = RGB(0, 255, 0)
Case "6"
Origen.Offset(2, 4).Interior.Color = RGB(0, 176, 240)
Case "7"
Origen.Offset(2, 4).Interior.Color = RGB(0, 176, 240)
Case "8"
Origen.Offset(2, 4).Interior.Color = RGB(128, 128, 128)
Case "9"
Origen.Offset(2, 4).Interior.Color = RGB(255, 255, 255)
Case Else
Origen.Offset(2, 4).Value = "-"
End Select
LabelsCounter = LabelsCounter + 1
If LabelsCounter Mod 2 = 0 Then
Origen.Offset(6, 1) = "Back visual"
'the next one would be down-left
Set Origen = Origen.Offset(11, -9)
Else
Origen.Offset(6, 1) = "Front visual"
'the next one would be right
Set Origen = Origen.Offset(0, 9)
End If
Next j
Next i
End Sub
は、以下の(DBCircuitsワークシート)でありますvに追加されていないまた、あなたは私を助けてくれますか?だから、あなたが持っているでしょうOrigen.Offset(0, 1)
をので、それはOrigen.Offset(0, 1).Value =
です::私はまだ問題にこれらの行の後に.Value
を追加する
'Origen.Offset(0、1)'に 'Origen.Offset(0、1).Value =' – ib11
のように '.Value'を追加してみてください。ある行に複数の 'Range'変数がある場合、' Dim DB_RangeをRange、StartVisualsをRangeとします。 'Dim DB_Range、StartVisuals As Range'は' Dim DB_Range as Variant、StartVisuals As Range'に相当し、 'Dim CircuitName、Location、Color1、Color2、DailyReq、StdPack As String'のこの行はVBAと同じです'VariantとしてのDim CircuitName、Variantとしての位置、VariantとしてのColor1、VariantとしてのColor2、VariantとしてのDailyReq、' StdPack As String'を含む。変更すると、いくつかの問題が解決する可能性があります – Ralph
@ ib11ありがとうございました、それも問題でしたが、実際の問題は、私がこのコードを逃した(私はこのコードを逃した) 'Origen.Offset(0、1).MergeArea .Cells(1、1).Value = CircuitName'なので、このコードをいくつかのステートメントに加えて、あなたの提案もありがとう。 ところで@Ralph、私はメモリ使用量のためにそうしたくなかったが、結局問題ではなかった、とにかく、あなたの助けに本当に感謝します。 – JoeJoe