/ / Błąd wykonywania i wklejania środowiska wykonawczego Excel - excel, excel-vba, vba

W programie Excel można kopiować i wklejać błędy - excel, excel-vba, vba

Stworzyłem książkę roboczą, która naśladuje gręyahtzee dla projektu. Przez makro zrobiłem to, dzięki czemu można nacisnąć przycisk, aby skopiować i wkleić grupę 9 komórek, które przypominają twarz kości. Wszystko wydaje się działać dobrze, ale losowo dostanę błąd 1004 czasu wykonywania. Nie napisałem kodu tylko dlatego, że nie jestem jeszcze na tym poziomie. Mam wiele różnych przycisków w obrębie tej samej kopii i wklejenia, ale nie zawsze jest to ta sama, która daje mi błąd. Oto jego kopia. Naprawdę doceniam każdy rodzaj pomocy w tym zakresie.

Sub Hold4()
"
" Hold4 Macro
"

"
Selection.Copy
Range("N10").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
With Selection.Font
.Name = "Wingdings 2"
.Size = 28
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
Range("N2:P4").Select
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
With Selection.Font
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0
End With
End Sub

Poniżej znajduje się sekcja, która jest podświetlona w ramach błędu ...

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Odpowiedzi:

0 dla odpowiedzi № 1

Próbować unikanie użycia .Select i użyj zmiennych zamiast:

Sub Hold4()
Dim myRng   As Range
Set myRng = Selection
myRng.Copy
Range("N10").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
With myRng.Font
.Name = "Wingdings 2"
.Size = 28
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With

With Range("N2:P4")
With .Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
With .Font
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0
End With
End With
End Sub