我有三個回圈程式,它們使用幾張紙和幾個范圍。我想設定它以便我可以在一個地方更改作業表名稱和范圍,而不是在三個不同的地方進行更改。那可能嗎?
現在,我正在這樣做。
' Loop One
Sub TestMe()
sheet_in = "Model In"
sheet_out = "Model Out"
range_in = "E10:AB300"
range_out = "E2"
Set sheet_in = Sheets(sheet_in).Range(range_in)
Set sheet_out = Sheets(sheet_out).Range(range_out)
row_count = Sheets(sheet_in).Range(range_in).Rows.Count
col_count = Sheets(sheet_in).Range(range_in).Columns.Count
For j = 1 to col_count
For i = 1 to row_count
range_out.Cells(K , 1).Value = range_in.Cells(i, j).Value
Next i
Next j
End Sub
我覺得會有更好的方法來做到這一點。
uj5u.com熱心網友回復:
考慮在專用模塊中定義常量:
Public Const WS_SHEET_IN As String = "Model In"
Public Const RNG_SHEET_IN As String = "E10:AB300"
Public Const WS_SHEET_OUT As String = "Model Out"
Public Const RNG_SHEET_OUT As String = "E2"
在您的常規代碼中:
Sub TestMe()
' etc., etc.
row_count = Worksheets(WS_SHEET_IN).Range(RNG_SHEET_IN).Rows.Count
End Sub
一如既往,盡管“這取決于”是組織代碼的“最佳”方式的答案。
例如:
命名您的作業表代碼模塊并直接使用該名稱而不是參考選項卡名稱:
InSheet.Range(RNG_SHEET_IN)
OutSheet.Range(RNG_SHEET_OUT)
使用屬性或函式回傳經常訪問的物件:
Function InRange() As Range
Set InRange = thisworkbook.worksheets(WS_SHEET_IN).Range(RNG_SHEET_IN)
End function
等等等等
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/380743.html
