我有一張表格,其中包含有關我的教室的資訊,其中包括他們的姓名,然后是他們使用的手機(IOS 或 Android),然后是他們是否有資格參加測驗。代碼使用此資訊將其放置在相應的作業表 (IOS YES) 或 (ANDROID YES) 中。但是,我希望我的代碼在分析第一行后移至第二行。我怎么做?
這是我到目前為止所擁有的:
While Sheets("BASE").Range("D2").Value <> ""
If Sheets("BASE").Range("D2").Value = "IOS" And Sheets("BASE").Range("E2").Value = "Y" Then
Sheets("BASE").Range("A2:E2").Select
Selection.Copy
Sheets("IOS YES").Select
Range("A2:E2").Select
ActiveSheet.Paste
ElseIf Sheets("BASE").Range("D2").Value = "ANDROID" And Sheets("BASE").Range("E2").Value = "Y" Then
Sheets("BASE").Range("A2:E2").Select
Selection.Copy
Sheets("ANDROID YES").Select
Range("A2:E2").Select
ActiveSheet.Paste
End If
Wend
uj5u.com熱心網友回復:
您需要行計數器:對于 base-sheet = rBase、ios-sheet = rIOS 等。
您不需要選擇/復制/粘貼 - 您只需將值寫入單元格即可。這要快得多。
此外,我假設您在基本作業表上的資料處于連續范圍內,即中間沒有空行 - 然后您可以使用CurrentRegion來獲取您必須檢查的行數。
我將作業表應用于變數,因為它使代碼更具可讀性(= 與重復 Thisworkbook.worksheet-stuff 相比,“更少的噪音”......)。如果作業表名稱發生變化 - 您只需在一處調整代碼。
Sub copyRows()
Dim wsBase As Worksheet
Set wsBase = ThisWorkbook.Worksheets("BASE")
Dim wsAndroid As Worksheet
Set wsAndroid = ThisWorkbook.Worksheets("ANDROID YES")
Dim wsIOS As Worksheet
Set wsIOS = ThisWorkbook.Worksheets("IOS YES")
Dim cntRows As Long
cntRows = wsBase.Range("A1").CurrentRegion.Rows.Count
Dim rBase As Long, rIOS As Long, rAndroid As Long
rIOS = 1: rAndroid = 1
Dim OS As String
For rBase = 2 To cntRows
If wsBase.Range("E" & rBase) = "Y" Then
OS = wsBase.Range("D" & rBase)
If OS = "IOS" Then
rIOS = rIOS 1
wsIOS.Range("A" & rIOS & ":E" & rIOS).Value = wsBase.Range("A" & rBase & ":E" & rBase).Value
ElseIf OS = "ANDROID" Then
rAndroid = rAndroid 1
wsAndroid.Range("A" & rAndroid & ":E" & rIOS).Value = wsBase.Range("A" & rBase & ":E" & rBase).Value
End If
End If
Next
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/321477.html
上一篇:我可以根據條件在PowerQuery中實作一個步驟嗎?
下一篇:具有各種標準的中位數
