谢谢Emily版主提醒,忘记了可以用.adress呀,比起我再用临时的CELL来解决方便多了,呵呵,另外,前面的ranges有误,应为range
自动栏宽下午研究过了,可以通过这样来解决:
tt = Worksheets("转换").Cells(1, 256).End(xlToLeft).Column
Worksheets("临时").Range("e1").Value = Worksheets("转换").Columns(1).ColumnWidth
For i = 2 To tt
Worksheets("临时").Range("e1").Value = Worksheets("临时").Range("e1").Value & "," & Worksheets("转换").Columns(i).ColumnWidth
Next i
ListBox1.ColumnWidths = Worksheets("临时").Range("e1").Value
思路是这样的,先把目标表面的各列宽读出来,放在临时的表面的某个单元格(中间自动加上";")再指向它就可以了。
不过这样读出来的值是每栏字符的个数,不是屏幕像素,所以在列表框显示时变少了,我试过找出个相对的比率,让Worksheets("转换").Columns(1).ColumnWidth加上后比较接近,但这样始终不是最好的办法。
希望各位高手帮忙。
[此贴子已经被作者于2004-12-23 21:33:50编辑过]