我在这里用我的代码难以接受,我得到这个通用错误,它应该在创建工作表之后复制并粘贴所选范围,但它给了我这个令人沮丧的错误 - 我不知道我做错了什么在这里,请帮助大家,所有帮助赞赏:)
Private Sub ExpBttn()
Dim WrkShtExists As Boolean
Dim Sht As Worksheet
Dim x As Integer
Dim TgtRngR As Range
Dim TgtRngB As Range
Dim TgtNme As String
Select Case Multi
Case MultiPage1.Value = 0
Set TgtRngR = Sheets("Tracker").Range("U2:Z19")
Set TgtRngB = Sheets("Tracker").Range("U21:Z26")
TgtNme = "P4PSoft"
Case MultiPage1.Value = 1
Set TgtRngR = Sheets("Tracker").Range("AB2:AG19")
Set TgtRngB = Sheets("Tracker").Range("AB21:AG26")
TgtNme = "P4PHard"
Case MultiPage1.Value = 2
Set TgtRngR = Sheets("Tracker").Range("AP2:AU19")
Set TgtRngB = Sheets("Tracker").Range("AP21:AU26")
TgtNme = "RCI"
Case MultiPage1.Value = 3
Set TgtRngR = Sheets("Tracker").Range("AI2:AN19")
Set TgtRngB = Sheets("Tracker").Range("AI21:AN26")
TgtNme = "RCDI"
End Select
Sheets.Add.Name = "Exported_" & TgtNme
Sheets("Tracker").Range("TgtRngR").Copy Destination:=Sheets("Exported_" & TgtNme).Range("A1:F18")
Sheets("Tracker").Range("TgtRngB").Copy Destination:=Sheets("Exported_" & TgtNme).Range("A20:F25")
Sheets("Exported_" & TgtNme).Range("A1:F18") = Sheets("Tracker").Range("TgtRngR").Value
Sheets("Exported_" & TgtNme).Range("A20:F25") = Sheets("Tracker").Range("TgtRngB").Value
Sheets("Exported_" & TgtNme).Select
ActiveSheet.Columns("A:F").AutoFit
答案 0 :(得分:0)
请查看您的Case
声明:
Case
开启者中使用了(本地)变量Multi
MultiPage1.Value
对我来说,它看起来没有Case
分支被执行,因此TgtRngR
,TgtRngB
,TgtNme
未定义。
在Private Sub ExpBttn()
设置断点并使用F8单步执行Sub
会有所帮助。
答案 1 :(得分:0)
您已在Case语句中设置范围变量,因此请在复制/粘贴
中使用它TgtRngR.Copy Destination:=Sheets("Exported_" & TgtNme).Range("A1:F18")
和
Sheets("Exported_" & TgtNme).Range("A1:F18") = TgtRngR
此外,您的案例陈述逻辑不正确。它应该像
TgtNme = ""
Select Case MultiPage1.Value
Case 0
...
Case 1
...
'etc
End Select
If TgtNme <>"" then
' do the cop pastes
End If