Это должно быть легко решаемой проблемой, но я очень незнаком с VBA, поэтому мне нужна помощь.
По сути, я хочу скопировать данные, данные мне (конечный диапазон столбцов, но динамический * 1005) * строк), и вставьте его во второй лист в Excel. Оттуда мне нужно преобразовать все значения в столбцах D, E, F и H в дроби из 12. Я почти уверен, что я нахожусь на 99% пути, но последний шаг (преобразование в текст дроби ) выполняется не в том листе. Я пытался использовать функцию .Activate, а также установить правильный лист, но ни одна из них не работает. Там должно быть легко исправить это, что я скучаю. Примечание: это мой первый код в VBA, поэтому будьте спокойны за меня. Код ниже:
Option Explicit
Sub FormatData()
Dim ws As Worksheet
' create a new worksheet, and name it "Master"
Set ws = ThisWorkbook.Worksheets.Add(after:=ThisWorkbook.Worksheets(1))
ws.Name = "Master"
' copy the UsedRange and Transpose
Worksheets("Sheet1").UsedRange.Copy
ws.Range("A1").PasteSpecial xlPasteAll, Transpose:=True
Sheets("Master").Activate
Dim i As Long, N As Long, j As Long
N = Cells(Rows.Count, "D").End(xlUp).Row
j = 2
For i = 2 To N
Cells(i, "D") = WorksheetFunction.Text(Cells(i, "D"), "0 0/12")
j = j + 1
Next i
j = 2
For i = 2 To N
Cells(i, "E") = WorksheetFunction.Text(Cells(i, "E"), "0 0/12")
j = j + 1
Next i
j = 2
For i = 2 To N
Cells(i, "F") = WorksheetFunction.Text(Cells(i, "F"), "0 0/12")
j = j + 1
Next i
j = 2
For i = 2 To N
Cells(i, "H") = WorksheetFunction.Text(Cells(i, "H"), "0 0/12")
j = j + 1
Next i
End Sub