我正在嘗試除錯以下函式,當在它上面列出的子主中使用時。
為了澄清函式引數的目的,它將使用 15 是間隔,4 是范圍行的開始位置,64 是范圍行的結束位置,3 是范圍開始的列 3 是范圍結束的列。
問題在于第一個引數 xInterval,當它選擇這個間隔時,我在第二個之前得到了一個額外的選擇。例如運行此代碼選擇 (C4, C18, C19, C34, C49, C64) 我不確定 C18 來自哪里并且不想要它。歡迎任何建議。謝謝!
Sub Main()
Dim rng As Range
Set rng = Every_Fiffteen_min(15, 4, 64, 3, 3)
End Sub
Function Every_Fiffteen_min(xInterval As Integer, row_start As Long, row_end As Long, Colu_start As Integer, Colu_end As Integer) As Range
' Input an interval defined by xInterval that will set the interval of rows to select.
' Using an input for the range row start, row end, column start and column end in numeric values not alpha.
' I have additional functions that will be used to calculate the row start, end, column start and column end, which is why I need these.
Dim CustomRange As Range 'Inputrng
Dim SelectRow As Range ' OutRng
Dim rng As Range
Dim i As Integer
With Sheets("Data Import")
Set CustomRange = .Range(Cells(row_start, Colu_start), Cells(row_end, Colu_end))
Set SelectRow = CustomRange.Rows(xInterval)
For i = 1 To CustomRange.Rows.Count Step xInterval
Set rng = CustomRange.Cells(i, 1)
If SelectRow Is Nothing Then
Set SelectRow = rng
Else
Set SelectRow = Union(SelectRow, CustomRange.Rows(i))
End If
Next i
Application.Goto SelectRow
End With
End Function
uj5u.com熱心網友回復:
由于您的線路,額外的范圍即將到來Set SelectRow = CustomRange.Rows(xInterval)
row_start你已經從to回圈了row_end。所以所有指定的 Ranges 都將被添加到SelectRow. 但是,您在回圈頂部也有那條線,它將不需要的范圍添加到SelectRow.
如果洗掉此行,問題將得到解決。但是在第一個回圈期間,您將做Set SelectRow = rng的不是Set SelectRow = Union(SelectRow, CustomRange.Rows(i)). 這將再次更改輸出范圍,根據您提供的描述,這似乎不適合您所需的輸出。
為了使一切都固定,還將行更改Set rng = CustomRange.Cells(i, 1)為Set rng = CustomRange.Rows(i)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/465255.html
上一篇:如何回圈另一個回圈以填充矩陣
