VBA TextToColumns - 从变量设置目标范围

时间:2018-05-18 17:11:16

标签: excel vba

将TextToColumns与变量一起使用时遇到了麻烦。

这有效:

IDCol = Rows(8).Find("ID", LookAt:=xlWhole).Column
Columns(IDCol).Select
Selection.TextToColumns Destination:=Range("J1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
   Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
   :=Array(1, 1), TrailingMinusNumbers:=True

但事实并非如此,因为我并不总是知道该列的位置。问题似乎是设置目的地。

IDCol = Rows(8).Find("ID", LookAt:=xlWhole).Column
Columns(IDCol).Select
Selection.TextToColumns Destination:=Range(Cells(1, IDCol)), DataType:=xlDelimited, _
 TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
    Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
    :=Array(1, 1), TrailingMinusNumbers:=True

谢谢,如果有人可以提供帮助。

1 个答案:

答案 0 :(得分:1)

试试这个:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;

namespace ConsoleApplication45
{
    class Program
    {

        static void Main(string[] args)
        {
            string xmlIdent = "<?xml version=\"1.0\" encoding=\"utf-16\"?>" +
                "<GeneralInformation xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">" +
                "</GeneralInformation>";

            XDocument doc = XDocument.Parse(xmlIdent);

            XElement generalInfo = doc.Root;
            XElement infoList = new XElement("InfoList");
            generalInfo.Add(infoList);

            for (int i = 0; i < 10; i++)
            {
                infoList.Add(new XElement("Infor" + i.ToString("0##"), new XElement("InfoName", "Test" + i.ToString("0##"))));
            }


        }

    }
}

//<?xml version="1.0" encoding="utf-16"?>
//<GeneralInformation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
//    <InfoList>
//        <Info001>
//            <InfoName>Test1</InfoName>
//        </Info001>
//        <Info002>
//            <InfoName>Test2</InfoName>
//        </Info002>
//        <Info003>
//            <InfoName>Test3</InfoName>
//        </Info003>
//    </InfoList>
//</GeneralInformation>