[英]Create sheets with Excel VBA based on values in other column
我有以下 VBA 代碼,可以從范圍為 D19:D33 的“Analysepakket”列表創建工作表,如圖所示。 如何更改我的 VBA 代碼,以便它只生成在另一列中找到值“J”或“j”的新工作表?
Sub CreateSheetsFromList()
Dim ws As Worksheet, Ct As Long, c As Range
Set ws = Worksheets("Opdrachtregistratie")
Application.ScreenUpdating = False
For Each c In Sheets("Laboratorium").Range("D19:D33")
If c.Value <> "" Then
ws.Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = Replace(Left(c.Value, 30), "/", "-")
Ct = Ct + 1
End If
Range("C30").Value = c.Value
Next c
If Ct > 0 Then
MsgBox Ct & " new sheets created from list"
Else
MsgBox "No names on list"
End If
Application.ScreenUpdating = True
End Sub
您可以使用Offset
方法檢查一個單元格相對於另一個單元格的值。 這個方法有兩個參數,第一個是行數,第二個是列數。 這兩個參數都可以是 0(保持在同一行或列)和負數(轉到頂部或左側)。
要將單元格左側讀取到另一個單元格,您可以使用Offset(0, -1)
- 0 表示您要讀取同一行,-1 是左側的列。
只需將您的 If 條件更改為
If c.Value <> "" And UCase(c.Offset(0, -1).Value) = "J" Then
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.