这只是我代码的一部分。此处文本框中的值已经被复制到银行认证工作表中的特定单元格。无论文本框中输入的文本长度如何,我都需要确保单元格C5是特定的。我尝试与细胞交换范围无济于事。这个问题看起来很简单,但我不知道它为什么不起作用......
Dim counterparty As String
counterparty = Sheet1.txt1.Text
Range("C5").Value = counterparty
Sheets("Bank Certification").Select
Range("C5").Select
Selection.AutoFit
答案 0 :(得分:9)
尝试
Dim counterparty As String
counterparty = Sheet1.txt1.Text
Range("C5").Value = counterparty
Sheets("Bank Certification").Select
Columns("C:C").Autofit
答案 1 :(得分:4)
其他答案正确说明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
当然,如果可以的话,编写这样的代码总是更好的形式:
例如:
Workbooks("MyWorkbook.xlsm").Sheets("Sheet1").Range("MyData").Columns.AutoFit
' or
Set AutoFitRange = Workbooks("MyWorkbook.xlsm").Sheets("Sheet1").Range("C5")
AutoFitRange.Columns.AutoFit