0

我的问题:
我有一本工作簿,里面有三张不同的工作表。表 1 是 PDF 文件中的一些数据,我想在其中使用我的 TextToColumns。表 2 包含来自我们财务数据库的数据,而它已经被拆分为单元格。表 3 比较了表 1 和表 2 中的两组数据。

我用来将文本拆分为列的代码

    Dim sht, sht2, sht3 As Worksheet
    Set sht = Sheets("PDF")
    Set sht2 = Sheets("Finance")
    Set sht3 = Sheets("Compare")

FindDate21 = sht.Range("1:1").Find("Bookkeeping Date", LookAt:=xlWhole).Address(False, False, xlA1)
DateSub = sht.Application.WorksheetFunction.Substitute(FindDate21, 1, "")
FindDateOffset = sht.Range(FindDate21).Offset(1, 0).Address(False, False, xlA1)
LastRowDateSub = sht.Cells(sht.Rows.Count, DateSub).End(xlUp).Row

rng1 = FindDateOffset & ":" & DateSub & LastRowDateSub

    sht.Range(rng1).TextToColumns Destination:=Range("A2"), DataType:=xlDelimited, _
            TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
            Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
            :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), _
            Array(6, 1), Array(7, 1), Array(8, 1))

我的问题正是:

在撰写本文时,我在 Sheet 1 中的数据是完美的,但在 Sheet 2 中的数据被破坏了。从插入到 16 个不同的列中,它被缩短为 3 个列。如何获得 TextToColumns 效果,而不干扰我粘贴在工作表 2 中的数据?我可以逆转 TextToColumns 的效果,而不逆转它对工作表 1 中数据的影响吗?

4

1 回答 1

0

I have now found a solution to the problem. I am able to insert a macro on Sheet 1 and Sheet 2. Sheet 1 to apply the TextToColumns function, and Sheet 2 to reverse it again.

Macro on Sheet 1:

    Private Sub Worksheet_Activate()

Dim sht As Worksheet
Dim LastRow As Long
Set sht = Sheets("PDF Data")

LastRow = sht.Cells(sht.Rows.Count, "A").End(xlUp).Row
rng1 = "A1:A" & LastRow

sht.Range(rng1).TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
        :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1))


End Sub

Macro on Sheet 2:

Private Sub Worksheet_Activate()

Dim sht2 As Worksheet
Dim LastRow As Long
Set sht2 = Sheets("Financial Data")

LastRow = sht2.Cells(sht2.Rows.Count, "A").End(xlUp).Row
rng1 = "A1:A" & LastRow

sht2.Range(rng1).TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1))


End Sub
于 2018-01-02T13:22:12.460 回答