繁体   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