Excel 值为“是”时vba从单元格复制到另一张图纸
所以我有两张纸,一张有信息,另一张也应该复制信息 如果“完成”标记为“是”,则该行中的所有信息都将复制到名为“FullpInfo2”(带按钮)的工作表中。在图片上的“模板”中。但我不知道现在要做什么。有人能告诉我如何继续吗 如果我添加一个新行并赋予其值“yes”,它应该重写上一行(名称、饮料、食物、车辆) 你可以试试:Excel 值为“是”时vba从单元格复制到另一张图纸,excel,vba,copy,Excel,Vba,Copy,所以我有两张纸,一张有信息,另一张也应该复制信息 如果“完成”标记为“是”,则该行中的所有信息都将复制到名为“FullpInfo2”(带按钮)的工作表中。在图片上的“模板”中。但我不知道现在要做什么。有人能告诉我如何继续吗 如果我添加一个新行并赋予其值“yes”,它应该重写上一行(名称、饮料、食物、车辆) 你可以试试: Option Explicit Sub CopyYes() Dim cell As Range Dim Source As Worksheet, Targe
Option Explicit
Sub CopyYes()
Dim cell As Range
Dim Source As Worksheet, Target As Worksheet
With ThisWorkbook
Set Source = .Worksheets("PersonalInfo")
Set Target = .Worksheets("FullpInfo")
End With
With Target
'Formatting
Call Module1.Formatting(.Range("B3"), "Name", "Titles")
Call Module1.Formatting(.Range("D3"), "Drink", "Titles")
Call Module1.Formatting(.Range("B6"), "Food", "Titles")
Call Module1.Formatting(.Range("D6"), "Vehicle", "Titles")
For Each cell In Source.Range("E2:E100")
If cell.Value = "yes" Then
'Values
Call Module1.Formatting(.Range("B4"), Source.Range("A" & cell.Row).Value, "Values")
Call Module1.Formatting(.Range("D4"), Source.Range("C" & cell.Row).Value, "Values")
Call Module1.Formatting(.Range("B7"), Source.Range("B" & cell.Row).Value, "Values")
Call Module1.Formatting(.Range("D7"), Source.Range("D" & cell.Row).Value, "Values")
End If
Next cell
End With
End Sub
Sub Formatting(ByVal rng As Range, str As String, strType As String)
With rng
.Value = str
.Font.Bold = True
If strType = "Values" Then
.Font.Color = vbBlue
End If
End With
End Sub
对不起,我忘了说如果我创建另一行代码也应该可以。但是我得到了“Error 424,Object required”,如果您添加行代码就可以工作。请记住,代码是区分大小写的,检查“yes”“.你从哪里弄来的错误?是的,我很笨。”。太累了,忘记了显式选项和更改模块1。。它现在可以工作了,但每次我按下按钮都会创建一个新行。是否可以在FullpInfo中替换当前的“姓名、饮料、食物和车辆”?只是替换,而不是创建新行:)以使其清晰。每条线都应该替换旧的吗?例如,所有名称都将放在单元格B4中,饮料放在D4中,食品放在B7中,车辆放在单元格D7中?是的,没错:)
Option Explicit
Sub CopyYes()
Dim cell As Range
Dim Source As Worksheet, Target As Worksheet
With ThisWorkbook
Set Source = .Worksheets("PersonalInfo")
Set Target = .Worksheets("FullpInfo")
End With
With Target
'Formatting
Call Module1.Formatting(.Range("B3"), "Name", "Titles")
Call Module1.Formatting(.Range("D3"), "Drink", "Titles")
Call Module1.Formatting(.Range("B6"), "Food", "Titles")
Call Module1.Formatting(.Range("D6"), "Vehicle", "Titles")
For Each cell In Source.Range("E2:E100")
If cell.Value = "yes" Then
'Values
Call Module1.Formatting(.Range("B4"), Source.Range("A" & cell.Row).Value, "Values")
Call Module1.Formatting(.Range("D4"), Source.Range("C" & cell.Row).Value, "Values")
Call Module1.Formatting(.Range("B7"), Source.Range("B" & cell.Row).Value, "Values")
Call Module1.Formatting(.Range("D7"), Source.Range("D" & cell.Row).Value, "Values")
End If
Next cell
End With
End Sub
Sub Formatting(ByVal rng As Range, str As String, strType As String)
With rng
.Value = str
.Font.Bold = True
If strType = "Values" Then
.Font.Color = vbBlue
End If
End With
End Sub