
Option Explicit
Function concat(r As Range) As String
Dim ac As Range, s As String, i As Long
If r.CurrentRegion.Cells.Count = 1 Then
Set r = r.End(xlDown).CurrentRegion
Else
i = Evaluate("=countblank(" & r.CurrentRegion.Address & ")")
If i > 0 Then
Set r = r.Resize(r.CurrentRegion.Rows.Count - 1).Offset(1)
Else
Set r = r.CurrentRegion
End If
End If
For Each ac In r
s = s + Trim(ac)
Next
concat = s
End Function |
'le celle che mi interessano vanno dalla cella D21 in giu...100 l'ho messo per far continuare il ciclo in modo da prendere tutte le celle..poi andrà sistemato per farlo fermarsi a fine file..
For i = 21 To 100
If Cells(i, 3) <> " " Then
With Sheets("Foglio2")
.Cells(1, i - 20) = Cells(i, 3)
End With
Else: i = i + 4
'questa riga in teoria dovrebbe saltare da una serie di numeri all'altra..in pratica no
End If
Next i |
Sub test2()
'attiva il foglio1
Sheets("Foglio1").Activate
'copia in memoria l'intero intervallo di celle tra C21 e l'ultima cella valorizzata in colonna C
'per far questo estende la selezione dal fondo del foglio a ritroso simulando la pressione del tasto End
Range(Cells(21, 3), Cells(65535, 3).End(xlUp)).Copy
'incolla quanto copiato in precedenza a partire dalla cella A1 del foglio2
'operando una trasposizione dei dati, invertendo cioè righe e colonne
Sheets("Foglio2").Range("a1").PasteSpecial Transpose:=True
'disattiva la modalità "Copiaincolla" di Excel
Application.CutCopyMode = False
End Sub |
For i = 30 To 84 Step 4 'valori misurati
With Sheets("fogliox")
.Cells(1, i - 29) = Cells(i, 2)
End With
Next i
For i = 104 To 172 Step 4 'valori misurati
With Sheets("fogliox")
If IsNumeric(Cells(i, 2)) Then
.Cells(2, i - 103) = Cells(i, 2)
End If
End With
Next i
|
