2012-07-25 100 views
0

如果我們使用功能區UI保護工作表,並且如果每個單元格都被鎖定或未啓用選擇,矩形光標會消失。我可以隱藏/顯示選定單元格周圍的黑色邊框嗎?

但由於我有一些細胞與用戶交互,我不會鎖定每個細胞。現在矩形只出現在未鎖定的單元上。

而且因爲我必須使這些鎖定的單元格的VBA選擇,加入以下代碼:

Worksheets("sheet1").Protect Password:="******", _ 
    UserInterfaceOnly:=True 

而現在因爲VBA可以選擇每一個細胞,無論是鎖定或解鎖,該矩形光標似乎無處不在。

現在我想讓這個矩形本身被隱藏;可能嗎?

+0

也許有點太快。請多說一點你想做的事情。 – 2012-07-25 02:13:40

+0

@ user1543250:如果要隱藏矩形光標,那麼用戶將如何知道哪個是活動單元格? – 2012-07-25 08:38:42

+0

@SiddharthRout在我的回答下面看到我的評論和OP的回覆。 – 2012-07-25 13:24:16

回答

0

您可以通過調用Application.Cursor來覆蓋光標(鼠標指針)的外觀。 Here is a reference.

由於我不確定這是什麼意思你的問題,你也可以找到this reference有用。

0

添加這段代碼:

Worksheets("sheet1").EnableSelection = xlNoSelection 
+0

你的問題說:「如果我們使用功能區UI保護表單,並且沒有單元格解鎖,那麼矩形光標將消失。」現在你說你不會鎖定每個細胞。這是真的嗎?無論如何,這是我能想出的唯一途徑。 – 2012-07-25 04:45:23

+0

我不認爲你可以做到這一點。此外,將光標從用戶隱藏起來似乎是個不錯的主意。它會讓他們很難看到他們在做什麼。祝你好運! – 2012-07-25 05:19:42

+0

您是否在整個代碼中使用select和active語句? – 2012-07-25 11:12:04

0

我不能讓它完全消失,但我可以隱藏得很好。 我從您高亮顯示當前單元格批註注意,所以添加到高亮顯示此代碼應幫助隱藏光標:

' Code generated by record macro, and not tidied up 
Selection.Borders(xlDiagonalDown).LineStyle = xlNone 
Selection.Borders(xlDiagonalUp).LineStyle = xlNone 
With Selection.Borders(xlEdgeLeft) 
    .LineStyle = xlContinuous 
    .ColorIndex = xlAutomatic 
    .TintAndShade = 0 
    .Weight = xlThick 
End With 
With Selection.Borders(xlEdgeTop) 
    .LineStyle = xlContinuous 
    .ColorIndex = xlAutomatic 
    .TintAndShade = 0 
    .Weight = xlThick 
End With 
With Selection.Borders(xlEdgeBottom) 
    .LineStyle = xlContinuous 
    .ColorIndex = xlAutomatic 
    .TintAndShade = 0 
    .Weight = xlThick 
End With 
With Selection.Borders(xlEdgeRight) 
    .LineStyle = xlContinuous 
    .ColorIndex = xlAutomatic 
    .TintAndShade = 0 
    .Weight = xlThick 
End With 
Selection.Borders(xlInsideVertical).LineStyle = xlNone 
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone 

這將打開邊框的黑色,這將是白色的(非常薄黑色輪廓)時,單元格被選中。

另一種方法是將所有單元格更改爲灰色粗輪廓,以便在選中該框時具有相同的顏色輪廓。編程,在改變爲代碼將除去colorindex線,並在其位置添加

.ThemeColor = 1 

,並改變TintAndShade線這樣:

.TintAndShade = -0.5 

無論使用何種方法的,你仍然會在當前單元格中留下一條細細的黑線。

-1

1)隱藏列

2)移動到A1

0

我不知道是誰寫了這個,所以我能給予信貸,但它似乎工作。

Private Declare Function ShowCursor Lib "USER32" _ 
(ByVal fShow As Integer) As Integer 

Sub hide() 
    While ShowCursor(False) >= 0 
    Wend 
End Sub 

Sub show() 
    While ShowCursor(True) < 0 
    Wend 
End Sub 
+0

這顯示並隱藏鼠標,不知道它是一個好主意。而是強制application.cursor = xlarrow?不知道我是否寫得對。現在不能測試 – 2017-06-13 00:55:46

0

沒有辦法真正隱藏矩形。

+1

這不是一個添加到vba的功能,真的不需要添加太多東西。當然,你可以嘗試通過替換它來解決它,但要回答這個問題,不,不可能在excel-vba中顯示/隱藏黑色選擇框 – 2017-06-23 12:04:22