2013-05-08 97 views
1

我在單元格中具有如下值,並且輸入鍵(返回)值在字符串值 之間這可能是因爲,有一段時間,單元格可能有更多價值觀和一段時間可能會少一些價值。我只想將單元格適合XYZ和ABC值(或單元格中有多少個單元格)。如何將單元格與單元格中的值配合

我試着自動調整選項,但沒有奏效

"XYZ <enter key>  
ABC <enter key> 
<enter key> 
<enter key> 
<enter key>" 

我怎麼能做到這一點使用VBA代碼?

+0

你可以添加顯示*之前的一些屏幕截圖或圖片鏈接(上傳至Imgur.com) *和*之後*你想要什麼?你的描述不是很清楚。謝謝! – 2013-05-08 02:10:32

回答

0

您可以使用自動調整VBA方法一樣顯示下面的示例(MSDN link)中:

Worksheets("Sheet1").Columns("A:I").AutoFit 

我希望這將有助於。問候,AB

0

AutoFit方法應該做你想做的。試試這個:

ActiveCell.EntireRow.AutoFit 
ActiveCell.EntireColumn.AutoFit 

或者:

Range("A1").EntireRow.AutoFit 
Range("A1").EntireColumn.AutoFit 

等等

+0

我試過自動調整,也提到了你提到的選項,但它沒有工作 – user2300403 2013-05-08 01:40:36

+0

請參閱我的修訂。我展示了我認爲你希望輸出看起來像什麼的圖片,並且我描述的方法已經做到了這一點。如果這是不正確的,請添加一些你想要格式化單元格的截圖(如果你不能在這裏添加圖片,上傳到Imgur.com並且只包含URL) – 2013-05-08 02:09:45

0

我想你想的大小細胞彷彿它沒有尾隨<enter key>

IE大小

"XYZ <enter key>  
ABC <enter key> 
<enter key> 
<enter key> 
<enter key>" 

,好像它是

"XYZ <enter key>  
ABC" 

要做到這一點,你需要計算所需的高度。試試這個:

Sub AdjustCell() 
    Dim RwHeight As Long 
    Dim NumLines1 As Long, NumLines2 As Long 
    Dim a() As String 

    With ActiveCell 
     If .Value = "" Then Exit Sub 
     .EntireColumn.ColumnWidth = 255 
     .EntireColumn.AutoFit 
     .EntireRow.AutoFit 

     RwHeight = .RowHeight 
     a = Split(CStr(.Value), vbLf) 
     NumLines1 = UBound(a) 
     NumLines2 = NumLines1 
     Do While a(NumLines2) = "" 
      NumLines2 = NumLines2 - 1 
     Loop 
     .EntireRow.RowHeight = (NumLines2 + 2)/(NumLines1 + 2) * RwHeight 
    End With 
End Sub 

這假定活動單元格中包含的行中的最大的電池(高度)

相關問題