在VB.NET中自动调整Excel列宽

4

我这里有VB6代码,它已经可以正常工作。

 For CLms = 1 To 10
      ws.Columns(CLms).AutoFit '<---Autofilt data on XL sheet
 Next CLms

我曾经搜索过如何在VB.NET中自适应调整Excel列宽的等效或替代方法,但是我仍然没有找到确切的AutoFit函数。

非常感谢您的帮助。

6个回答

13

这是我在vb.net中的做法。

xlSheet.Range("A1:X1").EntireColumn.AutoFit()

@user2878699:你的代码不是“工作良好”。在VBA中,如果没有使用“.EntireColumn”,“.AutoFit”就无法起到作用!这个解决方案对于VBA是正确的 - 不适用于VB6、vb.net等。 - LS_ᴅᴇᴠ
1
@Aphoria,感谢您的帮助。也许这不是完整的代码行,但这个例子包含了我需要的函数,它取决于开发者如何构建他的代码来工作。再次感谢! - user2878699
在我的环境中它完美地工作了。我所做的唯一更改是将其更改为:xlSheet.Cells.EntireColumn.AutoFit() - RPh_Coder

1
例如,如果您不知道列数,可以自动调整完整行。
xlSheet.Rows.Item(1).EntireColumn.AutoFit()

0

@RPh_Coder的评论中所提到的,您也可以通过以下方式实现:

xlSheet.Cells.EntireColumn.AutoFit()

0

无论您是从VB6还是VB.NET调用代码,操作Excel列的方法都是相同的。因此,如果您的代码在VB6中有效,则不应更改代码。

但是,如果需要帮助,请查看此完整示例,其中包括自适应宽度功能。


我已经阅读了你给出的链接并将其应用到我的项目中,现在它像我预期的那样正常工作。谢谢。 - user2878699

0

你好,我尝试了所有这些解决方案,但都没有起作用。请提供正确的解决方案:

    With oSheet

        .PageSetup.Zoom = False
        .PageSetup.FitToPagesWide = 1
        .PageSetup.FitToPagesTall = False

    End With

-1
我使用以下代码来自动调整使用范围的大小。
xlWorkSheet.UsedRange.EntireColumn.AutoFit()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接