范围级别的自动调整方法失败(运行时间错误1004)
这只是我的代码的一部分。 此处的文本框中的值已经被复制到银行authentication工作表中的特定单元格。 我需要确保单元格C5是特别适合的,而不pipe我在文本框中input的文本的长度。 我试图与细胞交换范围无济于事。 这个问题似乎很简单,但我不知道为什么它不工作…
Dim counterparty As String counterparty = Sheet1.txt1.Text Range("C5").Value = counterparty Sheets("Bank Certification").Select Range("C5").Select Selection.AutoFit
尝试
Dim counterparty As String counterparty = Sheet1.txt1.Text Range("C5").Value = counterparty Sheets("Bank Certification").Select Columns("C:C").Autofit
其他答案正确地说,AutoFit必须与列一起使用,而不仅仅是一个单元格。 然而,使用AutoFit有一些细微的差别,直到我开始试验才开始了解。
以下两条语句中的任何一条都将使用列C中的所有值来自动调整列的宽度。 这意味着,如果列C中某个其他单元格(例如C10)中的值比C5中的值更宽,则它将使列适合C列中最宽的单元格 (例如C10)。
Range("C5").EntireColumn.AutoFit ' Will fit to widest cell in column Range("C:C").AutoFit ' Will fit to widest cell in column
如果你想只适合1单元格 (或一定范围的单元格,但不是整列或列)的列,使用这样的语句:
Range("C5").Columns.AutoFit ' Will fit column C to width of cell C5
当然,当你可以这样写这样的代码时总是更好的forms:
- 完全限定范围,除非您确定只能使用一张工作表
- 使用命名范围或范围对象。
例如:
Workbooks("MyWorkbook.xlsm").Sheets("Sheet1").Range("MyData").Columns.AutoFit ' or Set AutoFitRange = Workbooks("MyWorkbook.xlsm").Sheets("Sheet1").Range("C5") AutoFitRange.Columns.AutoFit