copy range + paste + save as to txt file

Liên hệ QC

mrhackgm

Thành viên chính thức
Tham gia
30/1/10
Bài viết
80
Được thích
-11
Xin chào Anh/Chị/Em

Xin nhờ anh chị em giúp cho đoạn code với tác dụng
Mình làm một loạt syntax chạy phần mềm thứ 3.

Ý tưởng syntax này sẽ làm trong excel Range ("A3:A10"),
rồi copy nội dung của Range ("A3:A10") paste sang notepad,
save notepad thành file có tên Range("A2") lưu tại link Range("B2")

một loạt khoảng 2000 files [ for i = 1 to 2000 ]
tại sao là TXT: vì cấu trúc syntax tương đồng với TXT, mình làm txt rồi đổi đuôi txt thành đuôi syntax là ăn điểm.

Xin chân thành cảm ơn.
 

File đính kèm

  • test.xlsm
    14.9 KB · Đọc: 9
Lần chỉnh sửa cuối:
Xin chào Anh/Chị/Em

Xin nhờ anh chị em giúp cho đoạn code với tác dụng
Mình làm một loạt syntax chạy phần mềm thứ 3.

Ý tưởng syntax này sẽ làm trong excel Range ("A3:A10"),
rồi copy nội dung của Range ("A3:A10") paste sang notepad,
save notepad thành file có tên Range("A2") lưu tại link Range("B2")

một loạt khoảng 2000 files [ for i = 1 to 2000 ]
tại sao là TXT: vì cấu trúc syntax tương đồng với TXT, mình làm txt rồi đổi đuôi txt thành đuôi syntax là ăn điểm.

Xin chân thành cảm ơn.
Phải có file demo để thiên hạ giúp chứ. Chẳng lẽ anh bắt người giúp làm từ a tới z à
 
Upvote 0
ui xin lỗi Bác,
em xin tự phê bình, sửa bài đính kèm file ạ.

Trân trọng
 
Upvote 0
Úp cái file mẫu lên đi, chứ cụ tổ giời đất cũng không biết thế nào.

Cứ ở đấy mà cụ với bác.
 
Upvote 0
Úp cái file mẫu lên đi, chứ cụ tổ giời đất cũng không biết thế nào.

Cứ ở đấy mà cụ với bác.
dạ đây ạ, nhờ cụ xem giúp
Bài đã được tự động gộp:

mình vừa làm code như này, nhưng cảm giác chưa đúng ý lắm, vì muốn tạo object chạy mới đúng ý cơ.

Sub TEST()
Dim k As Integer
Dim c As Range, r As Range
Dim output As String

Range("x8").Value = Range("x8").Value + 1

For Each r In Range("l3:l17").Rows
For Each c In r.Cells
output = output & c.Value & ","
Next c
output = output & vbNewLine
Next r
Open (Range("y4")) For Output As #1
Print #1, output
Close
End Sub
 

File đính kèm

  • c00 - Copy.rar
    372 bytes · Đọc: 7
Lần chỉnh sửa cuối:
Upvote 0

Có phải đuôi syntax đâu hỡi người?


c00 - Copy.kgb

*.kgb là của thằng SPSSstatistics mà.

---
Yêu cầu

copy nội dung của Range ("L3:A17") paste sang notepad,

thì kết quả nó phải ra như thế này chứ? Có giống quái gì file mẫu gửi lên đâu.

1660537622510.png

---
Lập trình mà mô tả không chính xác thế này thì xin chào thua.

---
Bỏ thói quen xưng hô "cụ ông" gì đó đi bạn à. Ở đây là diễn đàn công nghệ, không phải mấy cái diễn đàn bà tám.
 

File đính kèm

  • 1660537433221.png
    1660537433221.png
    30.8 KB · Đọc: 15
Upvote 0
ôi, mệt quá đề bài là copy range paste sang Txt thôi bạn ơi
 
Upvote 0
Mệt hay khoẻ là do chính bản thân mình.

Loằng nhoằng ba cái ý tưởng copy rồi đổi đuôi này nọ làm gì. Dẹp bỏ đi.
Chỉ cần nêu cần xuất nội dung ở vùng abc thành tập tin *.kgb như mẫu đính kèm, lưu ở thư mục xyz.
Rồi người ta sẽ viết cho một đoạn code ấn một phát ra ngàn tập tin *.kgb chuẩn chỉ theo yêu cầu.
Thế thôi.

Quá mắc mệt.
 
Upvote 0
Thấy bạn nói nhiệt tình nhưng chưa thấy có đoạn code ngắn code dài nào, trong khi bạn yêu cầu đu đủ thứ? nào là mẫu, nào là encoding, nào là Bom...
còn cái ý tưởng của ng khác thì bạn tự cho cái quyền phán xét là loằng ngoằng, đòi dẹp bỏ...
bạn ko hiểu được đâu, bạn phải trong hoàn cảnh của họ bạn mới biết đc.
như cái code ví dụ mình viết ở dưới nó giải quyết 95% các thứ mình cần, mà không cần encoding hay BOm gì gì mà bạn đòi hỏi.


Dù sao cũng cảm ơn bạn bỏ công sức, thời gian ra đọc bài.
hãy nhớ diễn đàn này là nơi học hỏi về excel, mình dốt excel nên mới học hỏi.
còn mình biết bạn giỏi excel rồi, cái gì bạn cũng làm được.

xin cảm ơn!

Mệt hay khoẻ là do chính bản thân mình.

Loằng nhoằng ba cái ý tưởng copy rồi đổi đuôi này nọ làm gì. Dẹp bỏ đi.
Chỉ cần nêu cần xuất nội dung ở vùng abc thành tập tin *.kgb như mẫu đính kèm, lưu ở thư mục xyz.
Rồi người ta sẽ viết cho một đoạn code ấn một phát ra ngàn tập tin *.kgb chuẩn chỉ theo yêu cầu.
Thế thôi.

Quá mắc mệt.
Sub TEST()
Dim k As Integer
Dim c As Range, r As Range
Dim output As String

For k = 1 To 2000
Range("y11").Value = k

For Each r In Range("l3:l17").Rows
For Each c In r.Cells
output = output & c.Value & ","
Next c
output = output & vbNewLine
Next r
Open (Range("y4")) For Output As #1
Print #1, output
Close
next k

End Sub
trong đó y4 = link file dạng %widir%\...\*.txt
 
Upvote 0
Úp cái file syntax này lên thì mới ăn luôn và ngay.
...
Xin tắt cái mốc khô. Thớt dùng tiếng Anh bậy bạ.
Synttax = ngữ pháp.
Lệnh = command.
Nhóm lệnh: procedure

Chú: Bạn còn kiên nhẫn chứ tôi thì chạy những người có tật ăn nói tùm lum rồi dạy đời về nhiệm vụ diễn đàn.
 
Upvote 0
còn cái ý tưởng của ng khác thì bạn tự cho cái quyền phán xét là loằng ngoằng, đòi dẹp bỏ...
Thì bạn bỏ qua đi, đôi co làm gì.

Chỉ có bạn mới biết bạn cần gì. Nếu bạn ăn cơm rau muống cà pháo liên tục mà thấy ốm thì nên nghe lời khuyên của người khác. Còn nếu vẫn thấy khỏe mạnh thì bỏ qua lời của người ta đi.
như cái code ví dụ mình viết ở dưới nó giải quyết 95% các thứ mình cần, mà không cần encoding hay BOm gì gì mà bạn đòi hỏi.
Code của bạn tạo ra TXT vớì encoding = ANSI. Tập tin đính kèm ở bài #8 có thỏa mãn nhu cầu của bạn không? Tôi không kiểm tra xem cái mà bạn làm nó đòi ANSI, utf-8 hay unicode, vì tôi không quan tâm. Tôi chỉ có câu hỏi: tập tin như ở bài #8 đã thỏa mãn nhu cầu của bạn chưa? Nếu thỏa mãn rồi thì cứ thế là được, cứ thế mà làm, cứ thế mà phát huy.

Code của bạn tạo ra tập tin. Tại sao bạn viết là chỉ mới "giải quyết 95% các thứ mình cần"? Vậy bạn còn cần thứ gì thì nói rõ ra người ta mới giúp được.

Tất nhiên code chưa "đẹp" lắm. Cần sửa code và bỏ vòng For Each c In r.Cells

Ngoài ra nếu tôi nhìn không lầm thì code tạo 2000 tập tin y hệt nhau. Để làm gì 2000 tập tin y hệt nhau.?Tôi nhắc lại: có thể tôi không nhìn rõ. Khỏi phải ném đá.

Nếu muốn 2000 tập tin y hệt nhau thì cũng chỉ tạo 1 rồi copy thành 2000.

Tóm lại hãy cho biết 5% còn phải làm là gì.

Nên nhớ là nếu trên sheet có unicode thì code của bạn sẽ tạo ra tập tin chứa "đầu trâu mặt ngựa".
-----------
À nhầm 2000 tập tin không như nhau. Do không reset output nên tập tin sau nhiều dòng hơn tập tin trước.

Khắc phục: sau Range("y11").Value = k thì thêm output = ""
 
Lần chỉnh sửa cuối:
Upvote 0
Thì bạn bỏ qua đi, đôi co làm gì.

Chỉ có bạn mới biết bạn cần gì. Nếu bạn ăn cơm rau muống cà pháo liên tục mà thấy ốm thì nên nghe lời khuyên của người khác. Còn nếu vẫn thấy khỏe mạnh thì bỏ qua lời của người ta đi.

Code của bạn tạo ra TXT vớì encoding = ANSI. Tập tin đính kèm ở bài #8 có thỏa mãn nhu cầu của bạn không? Tôi không kiểm tra xem cái mà bạn làm nó đòi ANSI, utf-8 hay unicode, vì tôi không quan tâm. Tôi chỉ có câu hỏi: tập tin như ở bài #8 đã thỏa mãn nhu cầu của bạn chưa? Nếu thỏa mãn rồi thì cứ thế là được, cứ thế mà làm, cứ thế mà phát huy.

Code của bạn tạo ra tập tin. Tại sao bạn viết là chỉ mới "giải quyết 95% các thứ mình cần"? Vậy bạn còn cần thứ gì thì nói rõ ra người ta mới giúp được.

Tất nhiên code chưa "đẹp" lắm. Cần sửa code và bỏ vòng For Each c In r.Cells

Ngoài ra nếu tôi nhìn không lầm thì code tạo 2000 tập tin y hệt nhau. Để làm gì 2000 tập tin y hệt nhau.?Tôi nhắc lại: có thể tôi không nhìn rõ. Khỏi phải ném đá.

Nếu muốn 2000 tập tin y hệt nhau thì cũng chỉ tạo 1 rồi copy thành 2000.

Tóm lại hãy cho biết 5% còn phải làm là gì.

Nên nhớ là nếu trên sheet có unicode thì code của bạn sẽ tạo ra tập tin chứa "đầu trâu mặt ngựa".
-----------
À nhầm 2000 tập tin không như nhau. Do không reset output nên tập tin sau nhiều dòng hơn tập tin trước.

Khắc phục: sau Range("y11").Value = k thì thêm output = ""
trong ý mắng có ý dạy
nghe cũng thấy vui.
cảm ơn Bạn.

mấy ý kiến của các bác khác phía trên thì lìu tìu.
Bài đã được tự động gộp:

Xin tắt cái mốc khô. Thớt dùng tiếng Anh bậy bạ.
Synttax = ngữ pháp.
Lệnh = command.
Nhóm lệnh: procedure

Chú: Bạn còn kiên nhẫn chứ tôi thì chạy những người có tật ăn nói tùm lum rồi dạy đời về nhiệm vụ diễn đàn.
tiếng anh bạn thì giỏi rồi
dịch bất chấp ngữ cảnh thì chả dám nói thêm lời nào
Syntax viết còn ko đúng, còn dịch đc thành Ngữ pháp thì xin lạy bạn
bạn nhất, bạn giỏi

bạn giữ sức khỏe.
 
Upvote 0
...Syntax viết còn ko đúng, còn dịch đc thành Ngữ pháp thì xin lạy bạn
bạn nhất, bạn giỏi
...
Muốn lạy lục gì thì lạy. Tôi có giải thích rồi.
Tôi bị bệnh, thuốc chữa bệnh làm cứng ngón tay, chân. Vì vậy càng ngày tôi càng bị vướng lỗi gõ nhầm các ký tự gần nhau.
Ký tự "m" và "n" gần nhau. Vậy thôi.

Tôi luôn hãnh diện rằng khó khăn thế mà mình vẫn cố gắng gõ đủ từ.

Tôi đang mang căn bệnh thế kỷ, sống nay chết mai. Nói vầy là móc vào khuyết tật của người khác nhé.
 
Upvote 0
... Chính xác là 'SPSS Syntax'.
Tôi là dân thống kê mà. SAS, STATA, SPSS, ... không có gì lạ cả.

Người ta không có khờ đâu. Trong bài #1... còn có tình tâng bốc. Bởi người ta biết có thể dựa vào hoặc hơn nữa, có thể mượn sức để mắng tôi.
Chỉ trong vồng 1 vài bài nữa thôi là bạn sẽ thấy.
 
Upvote 0
Chủ thớt phải hiểu là file txt lưu dữ liệu ở "dạng" khác file excel nên cần phải khai báo thêm nhiều thông tin để có thể đảm bảo đúng yêu cầu ví dụ như ngăn cách bằng dấu gì, kiểu xuống dòng như thế nào, ...

Mình mới chỉ tìm hiểu để lấy dữ liệu từ file text vào excel thấy nó khá phức tạp nên diễn giải ra để chủ thớt hiểu là các Anh bên trên yêu cầu hoàn toàn là hợp lý.
Chứ không phải là đòi hỏi đủ thứ như mấy ông hách dịch mà bạn đang tưởng tượng ra.
Các anh ấy có thể đưa cho bạn 1 đoạn code ngắn gọn ra được file txt nhưng khi bạn dùng cho 10 file thì được, chứ 2000 file lại lỗi 1000 file thì bạn lại yêu cầu các anh code lại từ đầu, có phải mất công của cả 2 bên không ?
 
Upvote 0
Web KT
Back
Top Bottom