문제

나는 단어로 테이블 내부 테이블을 만들려고 노력하고 있습니다. 물론 Finall 프로그램에서는이 샘플에 있지 않은 Dinamical이 될 것입니다.

다음은 내 샘플 코드입니다.

 var
  aTable, bTable, cTable : OLEVariant;
begin
  m_WordApplication := CreateOleObject('Word.Application') ;
  m_WordDocument := m_WordApplication.Documents.Add;

  aTable := m_WordDocument.Tables.Add(m_WordApplication.Selection.Range, 2, 1);
  aTable.Borders.Item(wdBorderLeft).LineStyle:=wdLineStyleSingle;
  aTable.Borders.Item(wdBorderRight).LineStyle:=wdLineStyleSingle;
  aTable.Borders.Item(wdBorderTop).LineStyle:=wdLineStyleSingle;
  aTable.Borders.Item(wdBorderBottom).LineStyle:=wdLineStyleSingle;

  bTable := m_WordDocument.Tables.Add(aTable.Cell(1, 1).Range, 2, 1);
  bTable.Borders.Item(wdBorderLeft).LineStyle:=wdLineStyleSingle;
  bTable.Borders.Item(wdBorderRight).LineStyle:=wdLineStyleSingle;
  bTable.Borders.Item(wdBorderTop).LineStyle:=wdLineStyleSingle;
  bTable.Borders.Item(wdBorderBottom).LineStyle:=wdLineStyleSingle;

  cTable := m_WordDocument.Tables.Add(aTable.Cell(2, 1).Range, 3, 1);
  cTable.Borders.Item(wdBorderLeft).LineStyle:=wdLineStyleSingle;
  cTable.Borders.Item(wdBorderRight).LineStyle:=wdLineStyleSingle;
  cTable.Borders.Item(wdBorderTop).LineStyle:=wdLineStyleSingle;
  cTable.Borders.Item(wdBorderBottom).LineStyle:=wdLineStyleSingle;

  m_WordDocument.SaveAs('C:/test.doc', False) ;
  m_WordApplication.Quit(False);

먼저 커서 위치에 새 테이블 (2 행, 1 열)을 넣은 다음 두 번째 테이블을 셀 (1,1)과 첫 번째 테이블의 셀 (2,1)에 넣으려고합니다. 두 번째 테이블에는 2 개의 행과 1 개의 열이 있지만 세 번째 테이블에는 3 행과 1 개의 열이 있습니다. 그러나 내가 원하는 대신에 두 번째와 세 번째 테이블 whit가 한 줄만 얻습니다. 셀에 무언가를 넣었는지 여부에 관계없이 항상 그 테이블에 넣은 마지막 문자열 만 볼 수 있습니다.

더욱이, 첫 번째 테이블에 1 행과 2 개의 열 테이블을 넣으면 모든 것이 정상입니다.

도와주세요.

고마워요, 로크

도움이 되었습니까?

해결책

코드로 테이블을 만드는 데 문제가있는 경우 다음을 수행하십시오.

  • 열린 단어
  • 새로운 매크로를 기록하십시오
  • 녹음하는 동안 원하는 테이블을 만들고 녹음을 중지하십시오.
  • Visual Basic Editor에서 매크로 코드를보고 Ole-Automation 코드로 번역하려고 노력하십시오 (어렵지 않으면 거의 동일합니다).

다른 팁

aTable.Borders.Item(wdBorderVertical).LineStyle:=wdLineStyleSingle;
aTable.Borders.Item(wdBorderHorizontal).LineStyle:=wdLineStyleSingle;

Btable & ctable에 대해서도 똑같이해야합니다.

2 행 이상/열을 추가하면 경계를 분리하려면 테두리가 필요합니다 (즉, 1 행에서 1 행을 다른 열에서 또는 별도 1 열에서 분리하십시오).

도움이 되었기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top