打印数组仅导致将第一个值打印到excel中? [英] printing array only resulting in first value being printed into excel?

查看:45
本文介绍了打印数组仅导致将第一个值打印到excel中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

将word文档的文本行分配给数组,然后打印到excel列中.我想将数组中的每个项目都打印到它自己的单元格中.

Assigning word document lines of text to an array to then print into an excel column. I want to print each item in array to it's own cell.

当前,所有项目都正确地记录到数组中,但是它只是在 Action

Currently, all the items are storying correctly into the array, but it's only printing the first item over and over Action

代码:

Option Explicit
Sub ParaCopy()
    Dim wApp As Word.Application
    Dim wDoc As Word.Document
    Set wApp = CreateObject("Word.Application")
    Set wDoc = wApp.Documents.Open("J:\Data Dictionary.docx", ReadOnly:=True)

    Dim wPara As Word.Paragraph
    Dim arr() As Variant
    Dim i As Long
    i = 0
    For Each wPara In wDoc.Paragraphs
        If wPara.Range.Words.Count > 1 Then
            ReDim Preserve arr(i)
            arr(i) = wPara.Range
        End If
        i = i + 1
    Next wPara
    For i = LBound(arr) To UBound(arr)
        [a1].Resize(UBound(arr) + 1) = arr
    Next i
    
End Sub

为此,需要为此空格

Need to separate each block of text separated by a space (outlined in blue) to this

推荐答案

用一个列创建2D数组并加载:

Create a 2D array with one column and load that:

Option Explicit
Sub ParaCopy()
    Dim wApp As Word.Application
    Dim wDoc As Word.Document
    Set wApp = CreateObject("Word.Application")
    Set wDoc = wApp.Documents.Open("J:\Data Dictionary.docx", ReadOnly:=True)

    Dim wPara As Word.Paragraph
    Dim arr() As Variant
    ReDim arr(1 To wDoc.Paragraphs.Count, 1 To 1)
    Dim i As Long
    i = 1
    For Each wPara In wDoc.Paragraphs
        If wPara.Range.Words.Count > 1 Then
            arr(i, 1) = wPara.Range
            i = i + 1
        End If
        
    Next wPara

    [a1].Resize(UBound(arr) + 1) = arr
    
End Sub

这篇关于打印数组仅导致将第一个值打印到excel中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆