vba - 复制一系列值并粘贴它们并用逗号连接

标签 vba excel

我是 Excel 中宏的新手,在创建一个应该很简单的宏时遇到了很多麻烦,但我不知道如何编写它。 我需要复制一系列单元格值(给定第一个单元格 A2 和最后一个单元格 Z2),但它是一个动态范围,我需要知道最后填充的行来定义整个范围。然后,我需要用逗号连接这些值并将该值存储在 .csv 文件中。

This is the origin template

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/

相关文章:

excel - 使用 3 个单元的 UDF

Excel 公式或规则或 VBA 比较 2 个单元格并仅突出显示差异

vba - 追加而不是替换 Word 文档内容

vba - Worksheet_SelectionChange 未执行所需任务

Excel VBA循环遍历包含第一个字母M的所有工作表

excel - 给定 2 个日期时查找单元格范围

excel - Excel VBA中.Delete和.Clear之间的区别?

excel - 有没有办法计算一个类别的出现次数并在 Excel 中分配一个值?

excel - 如何使用偏移量使用 VBA 扩展命名范围

Excel - 计算满足多个条件的唯一值