【问题标题】:merged cell's contents cut off beyond page break合并单元格的内容在分页符之外被截断
【发布时间】:2009-05-12 15:15:42
【问题描述】:

我有一个 vb .net 程序,它使用命名范围将信息导出到 Excel 工作簿的某些字段。其中一个命名范围是注释部分,如果它超出分页符,则会被截断(不可见也不打印)。我正在寻找一种方法来动态创建新的命名范围以适应 所有 的注释文本。

其他一些信息:

  • 命名范围是 A2:L36 中的合并单元格,启用了文本换行

  • A 列宽 31 个单位

  • B 到 L 列的宽度为 8.38 个单位

  • 所有行的高度均为 15.75 个单位

  • 我不想打印空白页、调整字体大小、禁用文本换行、让最终用户进行任何重新格式化,也不想更改单元格的大小,因为我尝试了这些方法但没有成功。

  • 使用 Excel 2007

请帮忙!

提前谢谢! 〜第8次


原谅我的无知,我还是个n00b

【问题讨论】:

    标签: vb.net excel merge printing vba


    【解决方案1】:

    再次感谢 Lunatik 的回复。在我看到你最近的帖子之前,我能够想出一个可以接受的解决方法。这不是最优雅的解决方案,但它最适合我想要完成的事情。我希望这对将来的其他人有用。

    Dim sNotes As String = g_strProgram.sNotes
    Dim iStartIndex, iEndIndex As Integer
    Dim iRow As Integer = 0
    
    If (sNotes.Length > 0) Then
       g_frmMain.ucAdditionalInfo.txtNotes.Text = sNotes
       Do
          iRow += 1
          oWorkSheet.Range("A" & iRow + 1 & ":L" & iRow + 1).Merge()
          iStartIndex = IIf(iRow = 1, 0, iEndIndex + 1)
    
          If (g_frmMain.ucAdditionalInfo.txtNotes.GetFirstCharIndexFromLine(iRow) >= 0) Then
             iEndIndex = g_frmMain.ucAdditionalInfo.txtNotes.GetFirstCharIndexFromLine(iRow) - 1
          Else
             iEndIndex = g_strProgram.sNotes.Length - 1
          End If
    
          oWorkSheet.Range("ProgramNote").Offset(iRow, 0).Value = g_strProgram.sNotes.Substring(iStartIndex, iEndIndex - iStartIndex).TrimEnd(vbCrLf)
       Loop While (iEndIndex < g_strProgram.sNotes.Length - 1)
    Else
           oWorkSheet.Visible = Excel.XlSheetVisibility.xlSheetHidden
    End If
    

    如果有人阅读本文需要对上述任何内容进行澄清,请不要犹豫,在这里发布问题! ~第8个

    【讨论】:

      【解决方案2】:

      啊啊啊!合并单元格是撒旦的工作,应该不惜一切代价避免。即使他们的存在被认为是良性的,他们也可能以微妙而狡猾的方式破坏原本健全的工作表。

      你没有提到文字是垂直还是水平切断?

      您可能应该将AutoFit method 视为强制文本保留在打印区域内的一种方式。这将调整单元格的大小以使文本适合您选择的字体大小,并且由于打印区域由单元格边框定义,这应确保所有文本在打印后仍然可见。

      如果这不起作用,那么在不清除合并单元格的情况下可能很难确定。它们是绝对必要的吗?

      我现在正在开发与您类似的工作表模板,并且使用正常的自动调整功能,可以调整自身大小以适应各种字符串(最多 911 个字符)。

      【讨论】:

      • 感谢您的反馈 Lunatik。文本被垂直截断。我不熟悉 AutoFit 方法,但认为它不会解决我的问题,因为正如我之前所说,我不想将文本强制放入预定义的空间。注释部分的文本量会有所不同,因此理论上它应该能够容纳无限量的文本。我仍在寻找解决方案,所以如果我想出解决方案,我会在这里发布!
      • 我应该明确表示 Autofit 方法适用于单元格大小,而不是文本。它会更改行/列大小以适应其中包含的文本,因此听起来像是一个完美的解决方案。每个单元格(包括合并单元格中的每个单元格)最多可以有 409 点高和 255 点宽,所以一定能够显示预期的文本吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-23
      • 1970-01-01
      • 2021-02-11
      • 1970-01-01
      相关资源
      最近更新 更多