Excel VBA新手,我正在尝试创建条件(If或Then)代码
在Excel文档中,我试图复制整行值,并根据一个特定列中的两个条件保留格式和公式。我对这一点还不熟悉,可能最终会弄明白我在做什么,但投入的时间有限 下面是我尝试并正在努力复制L列中符合条件的值(粗体文本或黄色突出显示),但它不会保留格式,也不会复制整行值和公式Excel VBA新手,我正在尝试创建条件(If或Then)代码,excel,vba,if-statement,copy,paste,Excel,Vba,If Statement,Copy,Paste,在Excel文档中,我试图复制整行值,并根据一个特定列中的两个条件保留格式和公式。我对这一点还不熟悉,可能最终会弄明白我在做什么,但投入的时间有限 下面是我尝试并正在努力复制L列中符合条件的值(粗体文本或黄色突出显示),但它不会保留格式,也不会复制整行值和公式 Sub Button1_Click() Dim myrange As Range Dim startrow As Long Dim workrange As Range startrow = 2 Set workrange = She
Sub Button1_Click()
Dim myrange As Range
Dim startrow As Long
Dim workrange As Range
startrow = 2
Set workrange = Sheets("Full").Range("L2: L424")
For Each myrange In workrange
If myrange.Font.Bold Or myrange.Interior.ColorIndex = 6 Then
Sheets("Test").Cells(startrow, 12) = myrange.Value
startrow = startrow + 1
End If
Next
End Sub
好的,谢谢你们。我快到了。我现在的代码是:
Sub Button1_Click()
Dim myrange As Range
Dim startrow As Long
Dim workrange As Range
startrow = 1
Set workrange = Sheets("Full").Range("L1: L424")
For Each myrange In workrange
If myrange.Font.Bold Or myrange.Interior.ColorIndex = 6 Then
myrange.Resize(1, 98).Copy Sheets("Test").Cells(startrow, 12)
startrow = startrow + 1
End If
Next
End Sub
但我缺少A-K(1-11)列。我的条件是基于第12(L)列中的“值”(粗体字体或黄色突出显示),但我似乎只能发布L-CT行中的单元格值(带格式和公式)。感谢您的帮助 正如BigBen正确指出的,您需要复制单元格以保留所有格式和公式
Sub Button1_Click()
Dim myrange As Range
Dim startrow As Long
Dim workrange As Range
startrow = 2
Set workrange = Sheets("Full").Range("L2: L424")
For Each myrange In workrange
If myrange.Font.Bold Or myrange.Interior.ColorIndex = 6 Then
Sheets("Test").Cells(startrow, 12) = myrange.Value
startrow = startrow + 1
End If
Next
End Sub
编辑:是否确实要将复制的范围粘贴到图纸测试的第12列?如果是这样的话,我们走吧
Sub Button1_Click()
Dim myrange As Range
Dim startrow As Long
Dim workrange As Range
Dim wksFull As Worksheet
Dim wksTest As Worksheet
Set wksFull = Worksheets("Full")
Set wksTest = Worksheets("Test")
With wksFull
startrow = 1
Set workrange = .Range("L1: L424")
For Each myrange In workrange
If myrange.Font.Bold Or myrange.Interior.ColorIndex = 6 Then
.Range(.Cells(myrange.Row, 1), .Cells(myrange.Row, 98)).Copy _
wksTest.Cells(startrow, 12)
startrow = startrow + 1
End If
Next
End With
End Sub
您需要使用
复制
。明白-谢谢!我已经取得了一些进展,但仍然卡住了,并编辑了我原来的问题。说到这个,我是个新手。非常感谢!由于您编辑的代码,我已经取得了一些进展,但我仍然被卡住了,并且编辑了我的原始问题。我是新手,不是。第12列是满足条件的地方,但我希望粘贴的行从(“A”,1)开始。将复制目标更改为:wksTest.Cells(startrow,1)即可完成此操作。非常感谢你!