Excel 谁能告诉我为什么我';当我尝试运行此代码时,是否遇到类型不匹配错误? Private子命令按钮1\u单击() 如果范围(“C4”).Value”“、范围(“D4”).Value”“、范围(“E4”).Value”“、范围(“F4”).Value”“、范围(“G4”).Value”“、范围(“H4”).Value”“、范围(“I4”).Value”“,则 第i组=图纸(“图纸2”) e组=板材(“板材3”) 暗淡的 Dim j j=3 直到空为止(e.Range(“C”和j)) 如果e.Range(“C”&j,“F”&j)=i.Range(“C4:F4”),则 如果e.Range(“G”&j)为零,则 e、 范围(“G”和j,“I”和j)=I.范围(“G4:I4”) 其他的 如果结束 其他的 i、 范围(“C4:I4”)。副本 e、 范围(“C”&行数)。结束(xlUp)。偏移量(1,0)。粘贴特殊xlPasteValues 如果结束 j=j+1 环 其他的 如果结束 端接头
您的类型不匹配是因为您将范围与多个单元格进行比较,如下所示:Excel 谁能告诉我为什么我';当我尝试运行此代码时,是否遇到类型不匹配错误? Private子命令按钮1\u单击() 如果范围(“C4”).Value”“、范围(“D4”).Value”“、范围(“E4”).Value”“、范围(“F4”).Value”“、范围(“G4”).Value”“、范围(“H4”).Value”“、范围(“I4”).Value”“,则 第i组=图纸(“图纸2”) e组=板材(“板材3”) 暗淡的 Dim j j=3 直到空为止(e.Range(“C”和j)) 如果e.Range(“C”&j,“F”&j)=i.Range(“C4:F4”),则 如果e.Range(“G”&j)为零,则 e、 范围(“G”和j,“I”和j)=I.范围(“G4:I4”) 其他的 如果结束 其他的 i、 范围(“C4:I4”)。副本 e、 范围(“C”&行数)。结束(xlUp)。偏移量(1,0)。粘贴特殊xlPasteValues 如果结束 j=j+1 环 其他的 如果结束 端接头,excel,vba,Excel,Vba,您的类型不匹配是因为您将范围与多个单元格进行比较,如下所示: Private Sub CommandButton1_Click() If Range("C4").Value <> "" & Range("D4").Value <> "" & Range("E4").Value <> "" & Range("F4").Value <> "" & Range("G4").Value <> "" &
Private Sub CommandButton1_Click()
If Range("C4").Value <> "" & Range("D4").Value <> "" & Range("E4").Value <> "" & Range("F4").Value <> "" & Range("G4").Value <> "" & Range("H4").Value <> "" & Range("I4").Value <> "" Then
Set i = Sheets("Sheet2")
Set e = Sheets("Sheet3")
Dim d
Dim j
j = 3
Do Until IsEmpty(e.Range("C" & j))
If e.Range("C" & j, "F" & j) = i.Range("C4:F4") Then
If e.Range("G" & j) Is Nothing Then
e.Range("G" & j, "I" & j) = i.Range("G4:I4")
Else
End If
Else
i.Range("C4:I4").Copy
e.Range("C" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
End If
j = j + 1
Loop
Else
End If
End Sub
VBA不知道该回答什么,因为当您将4个单元格与4个单元格进行比较时,它不知道您希望看到什么
为了使某些内容有意义,您应该实现一个比较范围的函数。类似这样的东西可以让您开始:
If e.Range("C" & j, "F" & j) = i.Range("C4:F4") Then
公共函数比较符(rngA作为范围,rngB作为范围)作为布尔值
如果rngA.Count rngB.Count那么
CompareRanges=False
出口接头
其他的
'循环通过rngA的单元格,并将其与rngB进行比较
如果结束
端函数
您在哪一行收到错误?“寻求调试帮助的问题(“为什么此代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现该问题所需的最短代码。没有明确问题说明的问题对其他读者没有用处。请参阅:我相信这是在这一行:如果e.Range(“C”和j,“F”和j)=I.Range(“C4:F4”),那么对不起,我对VBA是相当陌生的,我不确定你写的代码是什么意思或者做什么基本上我有4个单元格,每行都有信息,我想按下一个按钮,在下一张工作表上搜索相同类型的数据列表,看看前两个单元格是否已经在列表中,如果是的话,将后两个单元格粘贴到同一行上,但如果没有将所有4个单元格粘贴到列表底部。@O.Renwick,请查找一个教程,解释VBAif。。。然后
命令。还可以找到有关VBA的教程functions@O.Renwick,请将最后的评论添加到您的问题中
Public Function CompareRanges(rngA As Range, rngB As Range) As Boolean
If rngA.Count <> rngB.Count Then
CompareRanges = False
Exit Sub
Else
'loop through the cells of rngA and compare them with rngB
End If
End Function