Ho un insieme di valori, come questo.
5 5 5 5 5 5 9 7 7 6 6 55 5 4 4 7 5 30 10 8 7 6 9 60 9 9 9 9 9 80 20 20 20 20 20 20
Diciamo che voglio modificare tutti i valori di -1, o +1, come lo farei? Sono praticamente nuovo a questo, e qualsiasi aiuto sarebbe molto apprezzato! Grazie.
Excel 2007.
risposte:
1 per risposta № 1Il modo più rapido per farlo in Excel normale o con VBA è utilizzare Excel "s Paste Special
capacità
Metodo manuale
- In una cella vuota, inserisci -1 (o 1 per il secondo caso)
- Copia quella cella
- evidenzia il tuo set di valori
- Modifica .... Incolla speciale .... Aggiungi per aggiungere quel valore a tutte le celle
Un esempio di moltiplicazione di questa tecnica è fornito qui da Signor Excel
Metodo VBA
Codice da Zack Barresse modificato per xl07 / 10 che utilizza una cella vuota nella colonna A per l'aggiunta
Option Explicit
Sub psAdd()
Dim y As Integer "The multiplier value, user-defined
Dim x As Range "Just a blank cell for variable
Dim z As Range "Selection to work with
Set z = Selection
y = Application.InputBox("Enter amount to add to selection:", _
Title:="Add to selection", Default:=10, Type:=1)
Set x = Cells(Rows.Count, "A").End(xlUp).Offset(1)
If y = 0 Then Exit Sub "Cancel button will = 0, hence cancel
If x <> "" Then
Exit Sub
Else: x.Value = y
x.Copy
z.PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd
Application.CutCopyMode = False "Kill copy mode
End If
x.ClearContents "Back to normal : )
End Sub
0 per risposta № 2
Per prima cosa, prova ad aprire l'editor VBA Alt + F11.
Il codice seguente mostra un modo di fare quello che vuoi.
Non copiarlo e incollarlo.
È lì per aiutarti a iniziare con il tuo codice.
Una rapida spiegazione:
- dichiarare alcune variabili,
- usare due
for
passa ad iterare su un piccolo intervallo di cellule, - incrementa il valore di ogni cella di 1.
Dopo hai scritto il tuo codice, dovresti essere in grado di eseguirlo premendo F5.
option explicit
sub increment_cell_values()
dim r as long
dim c as long
dim ws as worksheet
set ws = activesheet
for r = 1 to 6
for c = 1 to 6
ws.cells(r,c).value = ws.cells(r,c).value + 1
next c
next r
next ws
end sub