我是 Excel 中宏的新手,在创建一个应该很简单的宏时遇到了很多麻烦,但我不知道如何编写它。 我需要复制一系列单元格值(给定第一个单元格 A2 和最后一个单元格 Z2),但它是一个动态范围,我需要知道最后填充的行来定义整个范围。然后,我需要用逗号连接这些值并将该值存储在 .csv 文件中。
This would be the resulting .csv
我该怎么做?我认为这并不困难,我真的很感激任何帮助。
非常感谢
最佳答案
这对我有用:首先定义工作表并获取数据。然后将其逐行放入 csv 中(每个循环使用 de)。
在您问题的示例数据中,您已经有了用逗号分隔的值,但如果您使用其他语言,则可能需要用分号分隔数据。在这种情况下,您应该使用我在打印句子之前留下注释的替换句子。
希望对你有帮助。
Sub datos_a_csv()
Dim data, initial_row, final_row
'defines worksheet
Dim H_data As Worksheet
Set H_data = ThisWorkbook.Worksheets("Hoja1")
initial_row = 1
final_row = H_data.Cells(initial_row, 1).End(xlDown).Row + 1
'get the data
data = H_data.Cells(initial_row, 1).Resize(final_row - initial_row, 1)
'put the data in csv
My_filenumber = FreeFile
Open "C:\prueba\prueba.csv" For Append As #My_filenumber
For Each Row In data
'Row=replace(row,",",";")
Print #My_filenumber, Row
Next Row
Close #My_filenumber
End Sub
如果您想获取 Z 列之前的列,则:
data = H_data.Cells(initial_row, 1).Resize(final_row - initial_row, 26)
然后你应该像这样连接和存储 '将数据放入csv中 My_filenumber = 免费文件 打开“C:\prueba\prueba.csv”并附加为#My_filenumber
for i = lbound(data ,1) to ubound(data ,1)
row=""
for j = lbound(data ,1) to ubound(data ,1)
row = row + "," + data(i,j)
next j
Print #My_filenumber, Row
next i
Close #My_filenumber
关于vba - 复制一系列值并粘贴它们并用逗号连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39205646/