Nguyễn Ngân
Nguyễn Ngân
Thảo luận 3 thảo luận
Vỗ tay 0 vỗ tay
Lượt xem 700 lượt xem

em có 1 Bảng như sauSL Từ Đến1 1 12 5 65 10 1410 16 251 27 27Cần chuyển thànhDãy156101112131416Thì

Thầy ơi em có 1 Bảng như sau:
SL Từ Đến
1 1 1
2 5 6
5 10 14
10 16 25
1 27 27
Cần chuyển thành
Dãy
1
5
6
10
11
12
13
14
16
.....

Thì cần lập trình như thế nào ạ
Em cảm ơn
Thảo luận 3 câu trả lời
Lượt xem 700 lượt xem
Vỗ tay vỗ tay
Nguyễn Ngân 17:07 - Jul 28, 2020
Có phải ý bạn là muốn chuyển 1 bảng gồm nhiều dòng, nhiều cột về thành 1 bảng chỉ có 1 cột, trong đó dữ liệu ở dòng đầu tiên sẽ xoay thành cột, sau đó nối tiếp với dữ liệu ở dòng 2...?
Mình chưa rõ mục đích của bạn nên cần xác nhận lại, khi đó mới có giải pháp cụ thể cho bạn được.
Vỗ tay vỗ tay
Nguyễn Ngân 10:07 - Jul 29, 2020
Bảng đầu tiên sẽ gồm nhiều cột từ số đến số và số lượng
Bảng 2 sẽ là 1 bảng chỉ có 1 cột gồm các số trong dãy từ số đến số
VD: nếu Số lương 5, từ số 10 đến 14 thì chuyển thành 10,11,12,13,14

Và từ số đến số không lặp lại nhưng số lượng có lặp
VD:
SL Tu Den
1 1 1
2 5 6
5 10 14
10 16 25
1 27 27
2 29 30
5 32 36


Em cảm ơn
Vỗ tay vỗ tay
Nguyễn Ngân 11:07 - Jul 29, 2020
Thầy xem sub này dùm em ạ
Đến dòng code SL_1 = Sheet1.Rows.FormulaR1C1 = "=COUNTIF(C1:C1,""1"")" bị báo lỗi out ò memory ạ


Sub SERIAL_LIENTUC()
' sap xep
Columns("A:A").Select
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add2 Key:=Range("A:A") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").Sort
.SetRange Range("A:C")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'so luong=1 thi
Dim SL_1 As Long
SL_1 = Sheet1.Rows.FormulaR1C1 = "=COUNTIF(C1:C1,""1"")"


Sheet2.Range("A2:A" & SL_1).Value = _
Sheet1.Range("B2:B" & SL_1).Value

' So luong khac 1

Dim dongCuoi1 As Long
dongCuoi1 = Sheet1.Range("A" & Rows.Count).End(xlUp).Row
Dim DongCuoi2 As Long
DongCuoi2 = Sheet2.Range("A" & Rows.Count).End(xlUp).Row
Dim i As Range
Set i = Sheet1.Range("A" & SL_1 + 1 & ":A" & dongCuoi1).Value

Dim Soluong As Range
Set Soluong = Sheet1.Range("A" & SL_1 + 1 & ":A" & dongCuoi1)


For Each i In Soluong

Sheet1.Range("B" & SL_1 + i - 1).Select
Selection.AutoFill Destination:=Sheet2.Range("A" & DongCuoi2 + 1 & ":A" & DongCuoi2 + i), Type:=xlFillSeries
Sheet2.Range("A" & DongCuoi2 + 1 & ":A" & DongCuoi2 + i).Select

Next i

End Sub



Vỗ tay vỗ tay
Câu hỏi liên quan
© 2020 - Bản quyền của Công Ty Cổ Phần Công Nghệ Giáo Dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở Kế hoạch và Đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ Thông tin và Truyền thông