註冊
登錄
首頁
論壇版規
禁止列表
說明
地圖
數位書香
私人消息 (0)
公共消息 (0)
論壇任務 (0)
系統消息 (0)
好友消息 (0)
帖子消息 (0)
麻辣家族討論版版
»
Excel程式區
» 一個變色問題
1
2
3
下一頁
返回列表
下一主題
上一主題
發帖
一個變色問題
zyzzyva
發短消息
加為好友
zyzzyva
當前離線
UID
25510
帖子
109
主題
1
精華
0
積分
116
金錢
116
點名
0
作業系統
win7
軟體版本
2007
閱讀權限
20
在線時間
47 小時
註冊時間
2016-8-4
最後登錄
2018-10-22
中學生
帖子
109
主題
1
精華
0
積分
116
點名
0
作業系統
win7
軟體版本
2007
閱讀權限
20
註冊時間
2016-8-4
最後登錄
2018-10-22
11
#
跳轉到
»
發表於 2016-9-29 09:00
|
只看該作者
回復
10#
周大偉
不好意思,不是很了解這跟變色問題的關聯。如果只是要在vba中設定自動換列,使用.WrapText = True就可以了。
TOP
周大偉
發短消息
加為好友
周大偉
當前離線
UID
1583
帖子
250
主題
59
精華
0
積分
313
金錢
313
點名
0
作業系統
XP
軟體版本
2003
閱讀權限
20
性別
男
來自
澳門
在線時間
238 小時
註冊時間
2010-9-11
最後登錄
2020-1-6
中學生
帖子
250
主題
59
精華
0
積分
313
點名
0
作業系統
XP
軟體版本
2003
閱讀權限
20
性別
男
來自
澳門
註冊時間
2010-9-11
最後登錄
2020-1-6
12
#
發表於 2016-9-29 19:06
|
只看該作者
回復
11#
zyzzyva
明確說, 樓上樓主發問一個變色問題, 我把程式套入小弟工作表中, 而我在工作表儲存格格式>對齊方式中>勾選自動換列, 這情況下, 輸入文字過長列高便自行調整, 但現時文字過長,儲存格沒有調整列高, 因而沒法把全部輸入的文字顯示, 心想我己勾選了自動換列, 為何有此情況, 故想如果加入vba程式是否可以做到文字過長列高自行調整, 以便把輸入文字全部顯示, 謝,
下載
(33.22 KB)
2016-9-29 19:06
TOP
zyzzyva
發短消息
加為好友
zyzzyva
當前離線
UID
25510
帖子
109
主題
1
精華
0
積分
116
金錢
116
點名
0
作業系統
win7
軟體版本
2007
閱讀權限
20
在線時間
47 小時
註冊時間
2016-8-4
最後登錄
2018-10-22
中學生
帖子
109
主題
1
精華
0
積分
116
點名
0
作業系統
win7
軟體版本
2007
閱讀權限
20
註冊時間
2016-8-4
最後登錄
2018-10-22
13
#
發表於 2016-9-29 20:20
|
只看該作者
回復
12#
周大偉
那是合併儲存格的問題,excel合併儲存格有很多問題,用vba設定wraptext也沒用(可以手動在目標列的下緣按兩下,會發現一樣無效),詳細可以參考:
http://blog.contextures.com/archives/2015/12/03/autofit-merged-cells-row-height-update-20151203/
我想您應該是合併、變色完儲存格要在裡頭輸入文字?把下面的code加到同一個worksheet裡試試看。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Vhight As Single
If Target.WrapText = True Then
With Target
.Select
.RowHeight = 1
.WrapText = True
.UnMerge
.EntireRow.AutoFit
Selection.Merge
Vhight = .Width * .Height / Selection.Width
If Vhight < 16 Then Vhight = 16
.RowHeight = Vhight
.VerticalAlignment = xlCenter
End With
End If
End Sub
複製代碼
TOP
周大偉
發短消息
加為好友
周大偉
當前離線
UID
1583
帖子
250
主題
59
精華
0
積分
313
金錢
313
點名
0
作業系統
XP
軟體版本
2003
閱讀權限
20
性別
男
來自
澳門
在線時間
238 小時
註冊時間
2010-9-11
最後登錄
2020-1-6
中學生
帖子
250
主題
59
精華
0
積分
313
點名
0
作業系統
XP
軟體版本
2003
閱讀權限
20
性別
男
來自
澳門
註冊時間
2010-9-11
最後登錄
2020-1-6
14
#
發表於 2016-9-29 20:54
|
只看該作者
回復
13#
zyzzyva
感謝大大,
我會鑽研, 若有不問處, 再請教, 謝謝,
TOP
hong912
發短消息
加為好友
hong912
當前離線
UID
10498
帖子
97
主題
31
精華
0
積分
133
金錢
133
點名
0
作業系統
xp2007
軟體版本
xp2007
閱讀權限
20
性別
男
來自
香港
在線時間
38 小時
註冊時間
2012-8-12
最後登錄
2020-12-25
中學生
帖子
97
主題
31
精華
0
積分
133
點名
0
作業系統
xp2007
軟體版本
xp2007
閱讀權限
20
性別
男
來自
香港
註冊時間
2012-8-12
最後登錄
2020-12-25
15
#
發表於 2016-10-11 19:53
|
只看該作者
本帖最後由 hong912 於 2016-10-11 19:55 編輯
回復
13#
zyzzyva
大大好,
癹問了一個變色問題, 帶出另一個換列問題, 若能把兩個程式融合, 就是否可以, 謝謝!!
hong912
TOP
zyzzyva
發短消息
加為好友
zyzzyva
當前離線
UID
25510
帖子
109
主題
1
精華
0
積分
116
金錢
116
點名
0
作業系統
win7
軟體版本
2007
閱讀權限
20
在線時間
47 小時
註冊時間
2016-8-4
最後登錄
2018-10-22
中學生
帖子
109
主題
1
精華
0
積分
116
點名
0
作業系統
win7
軟體版本
2007
閱讀權限
20
註冊時間
2016-8-4
最後登錄
2018-10-22
16
#
發表於 2016-10-12 10:00
|
只看該作者
回復
15#
hong912
儲存格合併後不太好操作,請參考13F的回覆。
TOP
hong912
發短消息
加為好友
hong912
當前離線
UID
10498
帖子
97
主題
31
精華
0
積分
133
金錢
133
點名
0
作業系統
xp2007
軟體版本
xp2007
閱讀權限
20
性別
男
來自
香港
在線時間
38 小時
註冊時間
2012-8-12
最後登錄
2020-12-25
中學生
帖子
97
主題
31
精華
0
積分
133
點名
0
作業系統
xp2007
軟體版本
xp2007
閱讀權限
20
性別
男
來自
香港
註冊時間
2012-8-12
最後登錄
2020-12-25
17
#
發表於 2016-10-12 19:52
|
只看該作者
回復
16#
zyzzyva
前輩, 你好,
可否明確說明, 如何放於同一程式區內, 受教了, 感恩賜!
hong912
TOP
zyzzyva
發短消息
加為好友
zyzzyva
當前離線
UID
25510
帖子
109
主題
1
精華
0
積分
116
金錢
116
點名
0
作業系統
win7
軟體版本
2007
閱讀權限
20
在線時間
47 小時
註冊時間
2016-8-4
最後登錄
2018-10-22
中學生
帖子
109
主題
1
精華
0
積分
116
點名
0
作業系統
win7
軟體版本
2007
閱讀權限
20
註冊時間
2016-8-4
最後登錄
2018-10-22
18
#
發表於 2016-10-12 20:09
|
只看該作者
回復
17#
hong912
是2個事件,要放在同一個worksheet。按右鍵後會變色同時合併儲存格,如果在裡頭輸入,會有換列的效果(但不是很漂亮)。
個人覺得,如果會需要操作公式或程式,非必要盡量避免使用合併儲存格,儲存格合併之後,容易有很多奇奇怪怪的問題。
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
With Selection
If .Interior.ColorIndex = 5 Then
.Interior.ColorIndex = 3
Else
.Interior.ColorIndex = 5
.Merge
.WrapText = True
End If
End With
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Vhight As Single
If Target.WrapText = True Then
With Target
.Select
.RowHeight = 1
.WrapText = True
.UnMerge
.EntireRow.AutoFit
Selection.Merge
Vhight = .Width * .Height / Selection.Width
If Vhight < 16 Then Vhight = 16
.RowHeight = Vhight
.VerticalAlignment = xlCenter
End With
End If
End Sub
複製代碼
TOP
hong912
發短消息
加為好友
hong912
當前離線
UID
10498
帖子
97
主題
31
精華
0
積分
133
金錢
133
點名
0
作業系統
xp2007
軟體版本
xp2007
閱讀權限
20
性別
男
來自
香港
在線時間
38 小時
註冊時間
2012-8-12
最後登錄
2020-12-25
中學生
帖子
97
主題
31
精華
0
積分
133
點名
0
作業系統
xp2007
軟體版本
xp2007
閱讀權限
20
性別
男
來自
香港
註冊時間
2012-8-12
最後登錄
2020-12-25
19
#
發表於 2016-10-12 22:38
|
只看該作者
回復
18#
zyzzyva
謝謝前輩, 衷心感謝!
hong912
TOP
zyzzyva
發短消息
加為好友
zyzzyva
當前離線
UID
25510
帖子
109
主題
1
精華
0
積分
116
金錢
116
點名
0
作業系統
win7
軟體版本
2007
閱讀權限
20
在線時間
47 小時
註冊時間
2016-8-4
最後登錄
2018-10-22
中學生
帖子
109
主題
1
精華
0
積分
116
點名
0
作業系統
win7
軟體版本
2007
閱讀權限
20
註冊時間
2016-8-4
最後登錄
2018-10-22
20
#
發表於 2016-10-13 12:36
|
只看該作者
回復
20#
hong912
可以試著理解一下code,執行合併儲存格的是merge,只要把它刪除就可以了。
沒有合併的話,wraptext可以正常作用,另一個change事件也可以刪掉。
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
With Selection
If .Interior.ColorIndex = 5 Then
.Interior.ColorIndex = 3
Else
.Interior.ColorIndex = 5
.WrapText = True
End If
End With
End Sub
複製代碼
TOP
靜思自在 :
做該做的事是智慧,做不該做的事是愚癡。
1
2
3
下一頁
返回列表
下一主題
上一主題
Excelㄧ般區
EXCEL專屬討論區
Excelㄧ般區
Excel程式區
進階應用專區
OFFICE 系列
Word
PowerPoint
Access
Office不分區
程式語言
VB 與 VB.Net
C 與 C#
Java 與 J#
程式設計不分區
資料庫
ORACLE
My SQL
MS SQL
網頁設計
ASP 與 ASP.NET
PHP
PHP+MySQL 入門實作
JavaScript
FLASH / ActionScript
HTM/ HTML/ CSS
網頁設計不分區
電腦與作業系統
電腦各種硬體討論
一般電腦軟體討論
論壇事務
管理公告
投訴反映
新手測試
愛 ‧ 生活
公益佈告欄
生活與感動
[收藏此主題]
[關注此主題的新回復]
[通過 QQ、MSN 分享給朋友]
申請友情鏈接
Facebook粉絲