簡體   English   中英

根據其他列中的值創建工作表 Excel VBA

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM