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