Te estoy enviando tu libro con la nueva macro.
Observa que utilizo el mismo bucle para enviar las 4 columnas en lugar de hacer un For para cada una como lo tenías inicialmente.
Se recorre la col A de hoja1 y se completan tantas filas como las indicadas en el combo de días... no entendí porqué multiplicas por 2 pero lo dejé así.
Le agregué un control por si queda algún desplegable vacío, otro por si la hoja mensual ya existe y dejé la propiedad MatchRequired en True para que no escriban texto u otros números en el desplegable de días.
Private Sub CommandButton1_Click()
'x Elsamatilde
'Crear la hoja por mes y guardar número de dias por mes
Dim nbreHoja As String
Dim hora As Integer
Dim lineg As String
Dim año As Integer
nbreHoja = ComboBox1.Text
nfilas = ComboBox2.Text
año = ComboBox3.Text
mes = nbreHoja
'primero ejecutar los controles, si no cumplen cancelar el proceso.
If nbreHoja = "" Or año = 0 Or nfilas = "" Then
MsgBox "Faltan datos.", , "Error"
ComboBox3.SetFocus
Exit Sub
End If
'se controla si la hoja ya existe
esta = 0
For Each sh In Sheets
If sh.Name = nbreHoja Then esta = 1: Exit For
Next sh
If esta = 1 Then
MsgBox "Ya existe hoja para este mes.", , "Error"
ComboBox1.SetFocus
Exit Sub
End If
ActiveWorkbook.Sheets.Add After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = nbreHoja
Sheets(nbreHoja).Select
'Asignar titulos de columnas
Range("A1").Value = "Linea de negocio"
Range("B1").Value = "Localidad"
Range("C1").Value = "Año"
Range("D1").Value = "Mes"
Range("E1").Value = "Dia"
Range("F1").Value = "Hora"
Range("G1").Value = "Performance"
'filas de hoja origen
ini = 4
fini = Worksheets(1).Range("A" & Rows.Count).End(xlUp).Row
'se recorre hoja1 desde ini hasta fini
While ini <= fini
lineg = Worksheets(1).Range("A" & ini).Value
loca = Worksheets(1).Range("B" & ini).Value
'1er fila en hoja destino
finx = Range("A" & Rows.Count).End(xlUp).Row + 1
'se utiliza el mismo bucle para completar las 4 col
For x = finx To (nfilas * 2) + (finx - 1) '24 = horas del dia 'porqué x 2 ???
Cells(x, 1) = lineg
Cells(x, 2) = loca
Cells(x, 3) = año
Cells(x, 4) = mes
Next x
'pasa a la fila siguiente en Hoja1
ini = ini + 1
'repite el bucle para el siguiente negocio
Wend
'autoajustar col A:D
Columns("A:D").EntireColumn.AutoFit
'mensaje de fin de proceso
MsgBox "Fin de la creación de la hoja " & ComboBox1.Text
End Sub