Cách chèn và Delete dòng, cột theo vùng dữ liệu động lấy lên Sheet

Liên hệ QC

Kiều Mạnh

I don't program, I beat code into submission!!!
Tham gia
9/6/12
Bài viết
5,538
Được thích
4,128
Giới tính
Nam
Mạnh đang tập viết code lấy dữ liệu lên Sheet ... tự động chèn thêm dòng và cột làm sao cho nó vừa với số dòng và cột của dữ liệu lấy lên
mà đang gặp khó khăn và mong muốn tham khảo thêm nhiều cách khác nhau của các Bạn để Mạnh lựa chọn 1 giải pháp tốt nhất cho Mình
Rất mong các Bạn trợ giúp

Mạnh mô tả sơ bộ như sau:

1/ [ A7] là nơi gán dữ liệu

2/ [A7:I15] là vùng Co và giản gán dữ liệu phụ thuộc vào dữ liệu lấy lên tại [K2]

3/ sau mỗi lần chạy code nó sẻ Delete hết dòng [A7: I15] đi ... xong chèn số dòng mới tương ứng với dữ liệu lấy lên gán vào [A7] ...dữ liệu lấy lên luôn luôn biến động theo dòng và cột theo [K2]

4/ dòng tiêu đề và dòng tổng cộng sẻ tự động Co và giản theo vùng dữ liệu lấy lên sheet ... ko được xóa

5/ nếu số cột lấy lên nhiều hơn cột hiện có thì chèn thêm cột tương ứng bên ngoài (cột I)

6/ khó khăn là khi ta chạy code xong lưu cái vùng dữ liệu hiện có trên Sheet đó vào đâu ... xong lưu nó lại ... thoát file ... mở lại file chạy code xong delete cái vũng dữ liệu cũ đi ... xong chèn vùng dữ liệu mới lên ... cứ lặp lại như vậy ... nó sẻ lưu vùng dữ liệu sau cùng khi ta chạy code và bấm Lưu Excel

Xin Cảm Ơn

Capture.PNG
 

File đính kèm

Lần chỉnh sửa cuối:
Cách lưu thông tin
Mã:
Sub GhiNho()
  strAddress = "A1:B2"
  SaveSetting "Sheets2Files", "Settings", "Path", strAddress
  strRes = GetSetting("Sheets2Files", "Settings", "Path", "")
  '***
  strAddress = "C1:D2"
  SaveSetting "Sheets2Files", "Settings", "Path", strAddress
  strRes = GetSetting("Sheets2Files", "Settings", "Path", "")

'*** Cách khác, luu nhieu thong tin
  With ActiveSheet.CustomProperties
    strAddress = "A1:B2"
    If .Count >= 1 Then .Item(1).Delete
    .Add Name:="GPE", Value:=strAddress
    strRes = .Item(1).Value
    '***
    strAddress = "C1:D2"
    If .Count >= 1 Then .Item(1).Delete
    .Add Name:="GPE", Value:=strAddress
    strRes = .Item(1).Value
  End With
End Sub
Mới thử quậy chút
Thấy được cái tên của nó ... còn làm sao lấy được cái Vùng range của nó vào mãng đây ta ...:p:oops:
Mã:
MsgBox ActiveSheet.CustomProperties.Item(1).Name
Bài đã được tự động gộp:

vậy mới gọi là Nghiên cứu chứ anh hihiih.
Những gì anh vướng, em cũng đã từng vướng...........
nếu xài name thì coi như xong rồi đó .... tuy nhiên Hỏng có thích .... vô tình nó xóa name đi thì sao ... tèo à
 
Upvote 0
Mới thử quậy chút
Thấy được cái tên của nó ... còn làm sao lấy được cái Vùng range của nó vào mãng đây ta ...:p:oops:
Mã:
MsgBox ActiveSheet.CustomProperties.Item(1).Name
Bài đã được tự động gộp:


nếu xài name thì coi như xong rồi đó .... tuy nhiên Hỏng có thích .... vô tình nó xóa name đi thì sao ... tèo à
Bạn muốn lưu và lấy giá trị đưa vào mảng như thế nào, các giá trị thay đổi có giữ lại giá trị cũ hay xóa
 
Upvote 0
Bạn muốn lưu và lấy giá trị đưa vào mảng như thế nào, các giá trị thay đổi có giữ lại giá trị cũ hay xóa
1/ Khi ta chay code nó lấy cái mãng cũ Lưu trong Costom ra coi xem nó có bao nhiêu dòng và cột

2/ ta so sánh cái mãng cũ đó với Mãng mới lấy lên xem nó có bằng nhau dòng ,cột hay không ... xong chèn dòng, cột lên Sheet
Xong gán cái kết quả đó lên Sheet

3/ Cuối cùng ta lại lưu cái mãng mới gán lên sheet đó vào Custom ....

4/ nếu khi thoát Excel mà ko lưu thì nó sẻ nhớ lại cái lần cuối cùng lưu nó ... còn Lưu Excel lại thì nó nhớ lại lần sau cùng Lưu xong rồi thoát

Có nghĩa khi bắt đầu chạy code lấy cái mãng cũ trong Costom ra xài .... kết thúc ta xóa cái cũ đi xong lưu cái mới vào
 
Lần chỉnh sửa cuối:
Upvote 0
1/ Khi ta chay code nó lấy cái mãng cũ Lưu trong Costom ra coi xem nó có bao nhiêu dòng và cột

2/ ta so sánh cái mãng cũ đó với Mãng mới lấy lên xem nó có bằng nhau dòng ,cột hay không ... xong chèn dòng, cột lên Sheet
Xong gán cái kết quả đó lên Sheet

3/ Cuối cùng ta lại lưu cái mãng mới gán lên sheet đó vào Custom ....

4/ nếu khi thoát Excel mà ko lưu thì nó sẻ nhớ lại cái lần cuối cùng lưu nó ... còn Lưu Excel lại thì nó nhớ lại lần sau cùng Lưu xong rồi thoát

Có nghĩa khi bắt đầu chạy code lấy cái mãng cũ trong Costom ra xài .... kết thúc ta xóa cái cũ đi xong lưu cái mới vào
Góp ý với anh nhé anh đừng suy nghĩ phức tạp.
Cái anh cần lưu không cần phải là Mãng mà là string [Vung.Address], có được địa chỉ Vùng là anh làm được tất cả
 
Upvote 0
À sẵn tiện các anh cho em hỏi có cách nào Senkey Ctrl+Shift+Enter khon

Góp ý với anh nhé anh đừng suy nghĩ phức tạp.
Cái anh cần lưu không cần phải là Mãng mà là string [Vung.Address], có được địa chỉ Vùng là anh làm được tất cả
vậy cái vùng đó cất vào đâu xong khi cần thì xài lại cho tiện
 
Upvote 0
1/ Khi ta chay code nó lấy cái mãng cũ Lưu trong Costom ra coi xem nó có bao nhiêu dòng và cột

2/ ta so sánh cái mãng cũ đó với Mãng mới lấy lên xem nó có bằng nhau dòng ,cột hay không ... xong chèn dòng, cột lên Sheet
Xong gán cái kết quả đó lên Sheet

3/ Cuối cùng ta lại lưu cái mãng mới gán lên sheet đó vào Custom ....

4/ nếu khi thoát Excel mà ko lưu thì nó sẻ nhớ lại cái lần cuối cùng lưu nó ... còn Lưu Excel lại thì nó nhớ lại lần sau cùng Lưu xong rồi thoát

Có nghĩa khi bắt đầu chạy code lấy cái mãng cũ trong Costom ra xài .... kết thúc ta xóa cái cũ đi xong lưu cái mới vào
Bạn xem code ví dụ có phù hợp không
Mã:
Sub GhiNho1()
  Dim newAddress As String, oldAddress As String
  With ActiveSheet.CustomProperties
    If .Count = 0 Then
      'Cac lenh lay dia chi, ví du:
      oldAddress = Range("A3:G10").Address(0, 0)
      '.....
      .Add Name:="GPE", Value:=oldAddress 'gán oldAddress vao Property
    Else
      oldAddress = .Item(1).Value
    End If
  End With
  'Các lenh xu lý
  '.....
 
  'Cac lenh lay dia chi moi, ví du:
  newAddress = Range("A3:G12").Address(0, 0)
  '.....
  If oldwAddress <> oldAddress Then
    With ActiveSheet.CustomProperties
      .Item(1).Delete
      .Add Name:="GPE", Value:=newAddress 'gán newAddress vao Property
    End With
  End If
End Sub
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom