Paste Special
9 отговора
371 прегледа
Paste Special
Налага ми се да копирам само стойностите (без формули) от една страница на друга, само че искам да го направя с код и нещо не мога да го направя използвам кода
Selection.PasteSpecial Paste:=xlPasteValues
но непрекъснато ми дава грешка може и някъде другаде да ми е грешката по кода но не зная. Ето направо целия код ако може някой да ми каже къде греша
Sub zapis()
Dim i As Integer
Dim j As Integer
Dim g As Integer
Dim r As Integer
Dim n As Integer
Dim m
Dim rng As Range
On Error GoTo 0
m = InputBox("Въведете месеца за който са данните във формат DD.MM.YYYY", "Месец", "31.01.2005")
UserForm2.Show
UserForm2.Repaint
Worksheets("Ведомост").Activate
For i = 8 To 207
If Not Range("B" & i).Value = "" Then
Range("B" & i, "BL" & i).Select
Selection.Copy
Worksheets("Archive").Activate
For j = 5 To 2500
If Range("B" & j).Value = "" Then
Set rng = Range("B" & j, "BL" & j)
rng.Select
Selection.PasteSpecial Paste:=xlPasteValues
'ActiveSheet.Paste
Exit For
End If
Next
Worksheets("Ведомост").Activate
Else
Exit For
End If
Next
Application.CutCopyMode = False
Worksheets("Archive").Activate
For r = 5 To 2500
If Range("A" & r).Value = "" Then
n = r
For g = n To 2500
If Range("B" & g).Value <> "" Then
Range("A" & g).Value = m
Else
Exit For
End If
Next g
End If
Next r
MsgBox "Данните са записани", vbOKOnly
Worksheets("Ведомост").Activate
Unload UserForm2
End Sub
Go Install Analysis Toolpack!
Selection.PasteSpecial Paste:=xlPasteValues
но непрекъснато ми дава грешка може и някъде другаде да ми е грешката по кода но не зная. Ето направо целия код ако може някой да ми каже къде греша
Sub zapis()
Dim i As Integer
Dim j As Integer
Dim g As Integer
Dim r As Integer
Dim n As Integer
Dim m
Dim rng As Range
On Error GoTo 0
m = InputBox("Въведете месеца за който са данните във формат DD.MM.YYYY", "Месец", "31.01.2005")
UserForm2.Show
UserForm2.Repaint
Worksheets("Ведомост").Activate
For i = 8 To 207
If Not Range("B" & i).Value = "" Then
Range("B" & i, "BL" & i).Select
Selection.Copy
Worksheets("Archive").Activate
For j = 5 To 2500
If Range("B" & j).Value = "" Then
Set rng = Range("B" & j, "BL" & j)
rng.Select
Selection.PasteSpecial Paste:=xlPasteValues
'ActiveSheet.Paste
Exit For
End If
Next
Worksheets("Ведомост").Activate
Else
Exit For
End If
Next
Application.CutCopyMode = False
Worksheets("Archive").Activate
For r = 5 To 2500
If Range("A" & r).Value = "" Then
n = r
For g = n To 2500
If Range("B" & g).Value <> "" Then
Range("A" & g).Value = m
Else
Exit For
End If
Next g
End If
Next r
MsgBox "Данните са записани", vbOKOnly
Worksheets("Ведомост").Activate
Unload UserForm2
End Sub
Go Install Analysis Toolpack!
Re: Paste Special
Пробвай с това:
Selection.PasteSpecial Paste:=xlValues
а не с:
Selection.PasteSpecial Paste:=xlPasteValues
записа който ти давам е записан макрос, и при мен си работи без проблем
Selection.PasteSpecial Paste:=xlValues
а не с:
Selection.PasteSpecial Paste:=xlPasteValues
записа който ти давам е записан макрос, и при мен си работи без проблем
Re: Paste Special
не ще пак ми дава грешка и спира точно на този ред, явно бъркам някъде другаде в синтаксиса.
А кода по същия начин написан ми работи без проблеми в друг файл но не мога да видя къде е разликата
Selection.PasteSpecial Paste:=xlPasteValues
Go Install Analysis Toolpack!
А кода по същия начин написан ми работи без проблеми в друг файл но не мога да видя къде е разликата
Selection.PasteSpecial Paste:=xlPasteValues
Go Install Analysis Toolpack!
Re: Paste Special
аз имам същите нужди от време на време
ето моето решение на "проблема":
от Customize на Toolbar-a , Commands, Edit съм си извадил едно бутонче Paste Value, предствлява нещо като дискетка с 12 в средата
след това натискаш Copy, отиваш на мястото където искаш да копираш и "клякаш" на бутончето
а между другото от там съм си извадил и доста други бутони, който ми вършат страшно полезна работа
.xls
ето моето решение на "проблема":
от Customize на Toolbar-a , Commands, Edit съм си извадил едно бутонче Paste Value, предствлява нещо като дискетка с 12 в средата
след това натискаш Copy, отиваш на мястото където искаш да копираш и "клякаш" на бутончето
а между другото от там съм си извадил и доста други бутони, който ми вършат страшно полезна работа
.xls
Re: Paste Special
А сигурен ли си, че така дефинирани Copy Area и Paste Area са съвместими? Само от кода който си дал е трудно да се тества
Re: Paste Special
Като сложа само Paste ми копира и формулите а тогава ми дава грешки. А областите би трябвало да са съвместими еднакви са като брой клетки само дето са на различни страници.
Go Install Analysis Toolpack!
Go Install Analysis Toolpack!
Re: Paste Special
Не ми върши работа защото не го правя за собствена употреба и не зная как биха се оправили други потребители. Първо няма да знаят точно какво да копират и къде да го сложат, много по лесно е да го напиша и да се автоматизира, затова искам да го направя с код.
Go Install Analysis Toolpack!
Go Install Analysis Toolpack!
Re: Paste Special
ActiveSheet.Range("B" & j, "BL" & j).PasteSpecial Paste:=xlPasteValues
Проблемът е, че Selection не винаги връща обект от тип Range, за който е валиден методът PasteSpecial.
Проблемът е, че Selection не винаги връща обект от тип Range, за който е валиден методът PasteSpecial.
Re: Paste Special
и така не ще, явно нещо много съм го омотал и не мога да го оправя
Go Install Analysis Toolpack!
Go Install Analysis Toolpack!
Re: Paste Special
Проблема ми е идвал от там че имам 3 клетки на които съм дал Merge и това ми е обърквало всичко.
Go Install Analysis Toolpack!
Go Install Analysis Toolpack!