Edit1->Text 輸入至EXCEL中的欄位顯示問題 |
尚未結案
|
penny015
一般會員 發表:20 回覆:15 積分:7 註冊:2005-03-25 發送簡訊給我 |
請問一下我現在的程式RUN起來之後,再Edit1->Text輸入數字會先在第一列(1.1)~(1.4)顯示相同數字,然後Edit1->Text輸入新的數字之後會再第20列(20.1)~(20.4)之後不管在輸入什麼數字都會覆蓋在第20列(20.1)~(20.4)。
是我for迴圈設錯了嗎....我程式的用意是要輸入數字後excel再(1.1)顯示
之後是(1.2)....(1.4)再換到(2.1)....以持類推...
#pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "Excel_2K_SRVR" #pragma resource "*.dfm" int i=1; int j=1; TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { WideString aa; //定義aa if (OpenDialog1->Execute()) //直接打開檔案選擇視窗 { aa=OpenDialog1->FileName; //指定檔名 ExcelApplication1->Connect(); //EXCEL APPLICATION 連接 ExcelApplication1->Workbooks->Open(aa); ExcelWorkbook1->ConnectTo(ExcelApplication1->get_ActiveWorkbook()); ExcelApplication1->set_Visible(0,true); //指定EXCEL視窗為可視 ExcelWorksheet1->ConnectTo(ExcelWorkbook1->get_ActiveSheet()); //連接工作表 } } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { Variant v7; Variant KKK=Edit1->Text; Variant v(i); for(j=1;j<=4;j ){ Variant k(j); for(i=1;i<=20; i){ ExcelWorksheet1->Cells->set__Default(v,k,KKK); } } } //---------------------- |
wyndog
資深會員 發表:7 回覆:362 積分:348 註冊:2004-10-12 發送簡訊給我 |
引言: 請問一下我現在的程式RUN起來之後,再Edit1->Text輸入數字會先在第一列(1.1)~(1.4)顯示相同數字,然後Edit1->Text輸入新的數字之後會再第20列(20.1)~(20.4)之後不管在輸入什麼數字都會覆蓋在第20列(20.1)~(20.4)。 是我for迴圈設錯了嗎....我程式的用意是要輸入數字後excel再(1.1)顯示 之後是(1.2)....(1.4)再換到(2.1)....以持類推...咦,迴圈這樣寫,我看不太懂...|| 我猜 v 是 row, k 是 column 吧 你要做成 (1,1) -> (1,2) -> (1,3) -> (1,4) -> (2,1) ... 吧 那不能寫成迴圈,這樣你變成每次都等於 4x20 重掃一遍,答案一定不對的 你可以設二個變數,叫 ARow / ACol 先讓他們 = 1,因為你要從 (1,1) 開始寫 填格子的時候就一律填到 (ARow, ACol) 去 填完就加 ACol,超過 4 就歸回 1,ARow 加 1 像這樣:for(j=1;j<=4;j ){ Variant k(j); for(i=1;i<=20; i){ ExcelWorksheet1->Cells->set__Default(v,k,KKK); int ARow = 1; int ACol = 1; ..... void __fastcall TForm1::Button2Click(TObject *Sender) { Variant v(ARow); Variant k(ACol); Variant KKK = Edit1->Text; ExcelWorksheet1->Cells->set__Default(v,k,KKK); ACol ; if(ACol > 4) { ACol = 1; ARow ; // 我自做主張,當到達 (20,4) 時,跳回 (1,1) if(ARow > 20) ARow = 1; } }發表人 - reptile 於 2005/03/31 14:51:18 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |