0

我有一个包含 918 个单元格的范围(A1:A918)。每个单元格都有一个字符串。我需要 vba 代码用引号 (" ") 将每个单元格括起来,并在末尾添加一个逗号 (,)。然后转置列表。我也无法将这些字符添加到当前列表中。

例如

CURRENT LIST  (Sheet1)
Cell A1: Bob
Cell A2: Jane
Cell A3: Dan
Cell A4: Phil
Cell A5: Jimmy


RESULT (Sheet2)
Cell A1: "Bob",
Cell B1: "Jane",
Cell C1: "Dan", 
Cell D1: "Phil",
Cell E1: "Jimmy",

It will appear like this: "Bob", "Jane", "Dan", "Phil", "Jimmy"

我知道使用以下内容进行转置:

Worksheets("Sheet1").Range("A1:A5").Copy
Worksheets("Sheet2").Range("A1").PasteSpecial Transpose:=True

但我无法弄清楚如何将字符串包含到每个单元格中。任何人都可以帮忙吗?

4

2 回答 2

2

这应该可以解决问题

Sub Macro1()
Worksheets("Sheet1").Range("A1:A6").Copy
Sheets("Sheet2").Select
ActiveSheet.Paste
'Columns("A:A").Select
Sheets("Sheet2").Range("A:A").Select
Selection.NumberFormat = """''""@""''"""","""
Worksheets("Sheet2").Range("A1:A6").Copy
Worksheets("Sheet2").Range("B1").PasteSpecial Transpose:=True
End Sub
于 2013-05-17T16:20:59.170 回答
1

您可以粘贴到目标工作表上的单元格 A1,然后使用 Text to columns 方法吗? http://msdn.microsoft.com/en-us/library/office/ff193593.aspx

编辑:也许我不明白这个问题。尝试类似的东西

Sub transpose()
Dim rng As Range
Dim ws As Worksheet
Dim last As Range

Set ws = ActiveSheet   
Set last = ws.Cells(Rows.Count, "A").End(xlUp)
Set rng = ws.Range("A1", last)

For Each cell In rng
    Dim hold As String
    hold = """"
    hold = hold + cell.Value
    hold = hold + """" + ", "
    cell.Value = hold
Next cell

rng.Copy
ActiveWorkbook.Sheets(2).Range("A1").PasteSpecial transpose:=True

结束子

于 2013-05-17T15:58:40.643 回答