私は2つの.csvファイルを持っています - 目で見れば同じですが、それらについては別のものが必要です。 最初のものからのデータが私のtext-to-columnsマクロに当たったとき、その部分の列(最初の39)についてのみ、部分をスキップします(40から終わりに行く)。これは、2番目の.csvのデータには発生しません。ここでVBAのテキストはすべてのデータを解析していません
は(彼らは2つの異なるデータベースから生成されている)の両方からのデータのサンプルです:
注:ここでは
QRT NAME;REPORTING YEAR /;SOLVENCY CALCULA;LEGAL NAME OF TH;HOME COUNTRY;REPORTING CURREN;PORTFOLIO TYPE;ASSET HELD IN UN;PORTFOLIO;LINE ID;ID CODE;ID CODE TYPE;ID CODE LONG TEX;ORIGINAL CURRENC;ISSUER;ISSUER MIDDLE TE;ISSUER SECTOR;ISSUER COUNTRY;ISSUER CODE;ISSUER GROUP;ISSUER GROUP MID;PARTICIPATION;CUSTODIAN;CUSTODIAN MIDDLE;COUNTRY OF CUSTO;CIC ASSET CATEGO;CIC SUB ASSET CA;ASSETS SUBCLASS;TYPE OF SECURITY;TYPE OF COLLATER;BALANCE SHEET IT;EQUITY TYPE;RATING AGENCY;EXTERNAL RATING;MATURITY DATE;DURATION;VALUATION METHOD;QUANTITY;TOTAL PAR AMOUNT;UNIT SII PRICE;PERCENTAGE OF PA;ACCRUED INTEREST;TOTAL SII AMOUNT;ACQUISITION PRIC;WRITE-OFFS/WRITE;TOTAL AMOUNT LOC;IFRS ACCOUNTING;CLEAN VALUE IN O;DIRTY VALUE IN O;EXPOSURE IN ORIG;EQUITY;PROPERTY;FX RISK (DOWNSID;FX RISK (UPSIDE;INTEREST RATE (D;INTEREST RATE (U;SPREAD RISK BOND;SPREAD RISK STRU;SPREAD RISK DERI;;USE OF DERIVATIV;LONG OR SHORT PO;UNWIND TRIGGER O;TRADE DATE;PREMIUM PAID TO;PREMIUM RECEIVED;SWAP OUTFLOW AMO;SWAP DELIVERED C;SWAP INFLOW AMOU;SWAP RECEIVED CU;TRIGGER VALUE;DELTA;NUMBER OF CONTRA;CONTRACT DIMENSI;NOTIONAL AMOUNT;MAXIMUM LOSS UND;ASSET PLEDGED AS;FUND NUMBER;MATCHING PORTFOL;CURRENT INTEREST;INTEREST RATE FR;REDEMPTION;REFERENCE RATE L;FIXING FACTOR;FIXING SPREAD;QUOTATION TYPE;INTEREST RATE TY;REDEMPTION TYPE;QUOTED;LISTING COUNTRY;ANNUITY/INSTALLM;DISCOUNTING SPRE;FUNDS: FIXED INC;FUNDS: EQUITY QU;FUNDS: PROPERTY;FUNDS: CASH QUOT;FUNDS: ALTERNATI;FUNDS: FX-QUOTA;FUNDS: SPREAD DU;FUNDS: DURATION;BALANCE SHEET IT;
S.06.02.01;006.2016;M1;C;PL;PLN;L;N;LF_COMP;1;PLOPNPL00013;ISIN;X SA;PLN;9978;X;G47;PL;2594002C0DGL8KBA5491;18284;X;N;9448;ING BANK SLASKI;PL;3;PL31;EQ-STOCKS;Equity;NA;EQUI-EQUI;TYPE1;;;;;QMP;4900,000000;;31,470000;;0,000000;154203,000000;160424,170000;;;154203,000000;154203,000000;154203,000000;;49098,510000;0,000000;0,000000;0,000000;0,000000;0,000000;0,000000;;;;;;U;;;;;;;;;;;;;;NC;;;;0,00;;0,00;;;Per unit;;;Quoted;PL;;;;;;;;;;;31;
S.06.02.01;006.2016;M1;C;PL;PLN;L;N;LF_COMP;3;PL_CLF_PLN_BRE§2510;CAU;TD_PL_CLF_BRE BANK_PLN;PLN;9357;MBANK;K64.1.9;PL;259400DZXF7UJKK2AY35;727;COMMERZBANK;;9357;MBANK;PL;7;XT73;CASH-TD;Deposit;FIN-SEN;CASH-CASH;TYPE2;MDY;BBB;30.12.2016;0,500000;AVM;;448000,000000;;1,000000;4963,960000;452963,960000;;;;448000,000000;448000,000000;452963,960000;;0,000000;0,000000;0,000000;0,000000;-2655,240000;2436,920000;0,000000;;;;;;U;;;;;;;;;;;;;;NC;;;0,02210;0,00;;0,00;;;Percent;;;(none);;;;;;;;;;;;41;
QRT NAME;REPORTING YEAR /;SOLVENCY CALCULA;LEGAL NAME OF TH;HOME COUNTRY;REPORTING CURREN;PORTFOLIO TYPE;ASSET HELD IN UN;PORTFOLIO;LINE ID;ID CODE;ID CODE TYPE;ID CODE LONG TEX;ORIGINAL CURRENC;ISSUER;ISSUER MIDDLE TE;ISSUER SECTOR;ISSUER COUNTRY;ISSUER CODE;ISSUER GROUP;ISSUER GROUP MID;PARTICIPATION;CUSTODIAN;CUSTODIAN MIDDLE;COUNTRY OF CUSTO;CIC ASSET CATEGO;CIC SUB ASSET CA;ASSETS SUBCLASS;TYPE OF SECURITY;TYPE OF COLLATER;BALANCE SHEET IT;EQUITY TYPE;RATING AGENCY;EXTERNAL RATING;MATURITY DATE;DURATION;VALUATION METHOD;QUANTITY;TOTAL PAR AMOUNT;UNIT SII PRICE;PERCENTAGE OF PA;ACCRUED INTEREST;TOTAL SII AMOUNT;ACQUISITION PRIC;WRITE-OFFS/WRITE;TOTAL AMOUNT LOC;IFRS ACCOUNTING;CLEAN VALUE IN O;DIRTY VALUE IN O;EXPOSURE IN ORIG;EQUITY;PROPERTY;FX RISK (DOWNSID;FX RISK (UPSIDE;INTEREST RATE (D;INTEREST RATE (U;SPREAD RISK BOND;SPREAD RISK STRU;SPREAD RISK DERI;;USE OF DERIVATIV;LONG OR SHORT PO;UNWIND TRIGGER O;TRADE DATE;PREMIUM PAID TO;PREMIUM RECEIVED;SWAP OUTFLOW AMO;SWAP DELIVERED C;SWAP INFLOW AMOU;SWAP RECEIVED CU;TRIGGER VALUE;DELTA;NUMBER OF CONTRA;CONTRACT DIMENSI;NOTIONAL AMOUNT;MAXIMUM LOSS UND;ASSET PLEDGED AS;FUND NUMBER;MATCHING PORTFOL;CURRENT INTEREST;INTEREST RATE FR;REDEMPTION;REFERENCE RATE L;FIXING FACTOR;FIXING SPREAD;QUOTATION TYPE;INTEREST RATE TY;REDEMPTION TYPE;QUOTED;LISTING COUNTRY;ANNUITY/INSTALLM;DISCOUNTING SPRE;FUNDS: FIXED INC;FUNDS: EQUITY QU;FUNDS: PROPERTY;FUNDS: CASH QUOT;FUNDS: ALTERNATI;FUNDS: FX-QUOTA;FUNDS: SPREAD DU;FUNDS: DURATION;BALANCE SHEET IT;
S.06.02.01;006.2016;M1;C;PL;PLN;L;N;LF_COMP;1;PLOPNPL00013;ISIN;X SA;PLN;9978;X;G47;PL;2594002C0DGL8KBA5491;18284;X;N;9448;ING BANK SLASKI;PL;3;PL31;EQ-STOCKS;Equity;NA;EQUI-EQUI;TYPE1;;;;;QMP;4900,000000;;31,470000;;0,000000;154203,000000;160424,170000;;;154203,000000;154203,000000;154203,000000;;49098,510000;0,000000;0,000000;0,000000;0,000000;0,000000;0,000000;;;;;;U;;;;;;;;;;;;;;NC;;;;0,00;;0,00;;;Per unit;;;Quoted;PL;;;;;;;;;;;31;
S.06.02.01;006.2016;M1;C;PL;PLN;L;N;LF_COMP;3;PL_CLF_PLN_BRE§2510;CAU;TD_PL_CLF_BRE BANK_PLN;PLN;9357;MBANK;K64.1.9;PL;259400DZXF7UJKK2AY35;727;COMMERZBANK;;9357;MBANK;PL;7;XT73;CASH-TD;Deposit;FIN-SEN;CASH-CASH;TYPE2;MDY;BBB;30.12.2016;0,500000;AVM;;448000,000000;;1,000000;4963,960000;452963,960000;;;;448000,000000;448000,000000;452963,960000;;0,000000;0,000000;0,000000;0,000000;-2655,240000;2436,920000;0,000000;;;;;;U;;;;;;;;;;;;;;NC;;;0,02210;0,00;;0,00;;;Percent;;;(none);;;;;;;;;;;;41;
は、私が使用したテキスト・ツー・コラム式は次のとおりです。私はapprecたいコードで行うことができる何かがあればデータは、テキストツー列ParamBook
Public Sub Load_input()
InputPath = Application.GetOpenFilename("Comma Separated Values (*.csv),*.csv")
Call Fetch_Data
End Sub
Sub Fetch_Data()
Dim InputBook As Workbook
Dim ParamBook As Workbook
Dim n As Integer
Dim K As Integer
Set InputBook = Workbooks.Open(InputPath)
Set ParamBook = ThisWorkbook
'==========CLEAR CONTENTS OF DATA SHEET==========
If ParamBook.Sheets("Data").Cells(1, 1) <> "" Then
ParamBook.Sheets("Data").Cells.Clear
End If
'==========COPY INPUT AND PASTE INTO DATA SHEET==========
n = InputBook.Sheets(1).Cells(Rows.Count, "A").End(xlUp).Row
InputBook.Activate
InputBook.Sheets(1).Range(Cells(1, 1), Cells(n, 1)).Select
Selection.Copy
ParamBook.Activate
Application.DisplayAlerts = False
ActiveSheet.Paste Destination:=Worksheets("Data").Range("A1")
'==========TEXT TO COLUMSN IN DATA SHEET==========
K = ParamBook.Sheets("Data").Cells(Rows.Count, "A").End(xlUp).Row
ThisWorkbook.Sheets("Data").Activate
For K = 1 To K
Application.DisplayAlerts = False
ThisWorkbook.Sheets("Data").Cells(K, 1).Select
Selection.TextToColumns DataType:=xlDelimited, Semicolon:=True, Comma:=False
Next K
InputBook.Close
End Sub
で起こるInputBookからコピーされますいくつかのヒントをiateして、私はむしろ.csvファイルがどのように生成されるのか混乱しないだろう。
編集:このテキスト・ツー・コラムコードはちょうどより速く動作しますが、まだ同じ問題
。
'==========TEXT TO COLUMSN IN SAP_BW_DATA SHEET==========
K = ParamBook.Sheets("SAP BW Data").Cells(Rows.Count, "A").End(xlUp).Row
ThisWorkbook.Sheets("SAP BW Data").Activate
ThisWorkbook.Sheets("SAP BW Data").Range(Cells(1, 1), Cells(K, 1)).Select
Selection.TextToColumns DataType:=xlDelimited, Semicolon:=True, Comma:=False
編集2:
OK、私はそれを絞られている - 結局のところ、問題は、TTCの機能と位置していないが、方法は、データを.csvファイルから貼り付けられます。現在設定されている方法では、データの一部(テキストとコラムになっている同じ部分)だけを取得し、残りはペーストされません。それを解決することが問題の解決に役立ちます。助けに参加してくれてありがとう!
編集3:
問題を修正しました@cxwは、彼のポストを参照してください!
*一部の列についてのみ*を明らかにすることはできますか?列の一部(つまり、いくつかの行)が解析されていないか、一部の列では動作していて他の列では動作していないことを意味しますか? – pnuts
私が意味することは、それが一度40列目に当たったら、最初の行以外のデータはありません。のように、列40から最後の右に、それはすべて空です。 –
データ*がそこにありますが、それよりはるかに右側にあります(つまり、コンテンツがなく、その後多くのデータを持つ列がたくさんあります)?あなたは連続した区切り文字を1つとみなしましたか? – pnuts