• 2

Excel 禁止 雙擊儲存格邊界

yuehmao wrote:
Dim SaveDragAndDrop As Variant


這個用google 可以找到 2007 的

http://www.ozgrid.com/forum/showthread.php?t=66366

原作者應該是想避免在相同區域,一直做 enable 或 disable 的動作

但是實際測試,切換 sheet 一下就 gg

禁止 雙擊儲存格邊界,並不是一般人會有的困擾

excel 畫面太多資料,又有 雙擊儲存格的巨集,常常雙擊就跳到程式最下面~~ 煩呀~~

現在總於能解決這個討人厭的問題了
Eigen wrote:
這個用google...(恕刪)


如此說來,您平常在使用Excel時,是有另外設置 "雙擊儲存格的巨集" 在搭配使用,
這樣的話,在下確實是沒有這麼用過,所以是沒有這樣的困擾^^"
不過,您所提供分享的 http://www.ozgrid.com 這個站似乎不錯,好像蠻多東西可以看的.


有沒有高手能指點一下,我用 Application.CellDragAndDrop = False ' "範圍內"

已經能 enable /disable 雙擊邊界的功能

但是Application.CellDragAndDrop 這個功能,會讓 儲存格無法被 select / copy /paste ,實在是太麻煩了,能不能請高手指點一下?

如何將目前select/copy 的資料備份下來? 以便當 Application.CellDragAndDrop 切換時,再還原位置回來

yuehmao wrote:
發覺這方式的編碼雖然簡潔,但是也存在一個Bug點,
1. 先在 Sheet1 的設定限制參照範圍內(即黃色區域處)圈選一個參照範圍,
2. 接著直接點選至 Sheet2 ,然後再圈選一個參照範圍,
3. 接著再直接點選回 Sheet1
...(恕刪)
當在不同的 Sheet 中切換時, Workbook_SheetSelectionChange 這個 Event 不會立即觸發作用,
...(恕刪)


您不說我還沒發現到,用這種方式測試,確實會慢一步
我3樓不簡潔的寫法,問題也是一樣的

稍微試了一下
Workbook_SheetActivate(ByVal Sh As Object)
這個才能對選工作表,立刻作出反應
Workbook_SheetSelectionChange會慢一拍

如果要改的話
要先建立一個Global check As Boolean 全域變數
然後在Workbook_SheetActivate(ByVal Sh As Object)裡面
記錄離開時DragAndDrop狀態,回sheet1時再恢復DragAndDrop狀態

不過,這種小問題,不影響主要功能
隨便點一格,就會正常,還可以少打幾行程式碼,無視就好

Eigen wrote:
如何將目前select/copy 的資料備份下來...(恕刪)


一、比較簡單一點的寫法,增加一個function
'注意,要先打開vba,工具=>設定引用項目=>瀏覽=>選fm20.dll=>確定

Function CopyClipboard()

Dim temparray As New DataObject
Dim Clipboard_data As String

temparray.GetFromClipboard

If temparray.GetFormat(1) = True Then
Clipboard_data = temparray.GetText(1)
temparray.Clear
temparray.SetText Clipboard_data
temparray.PutInClipboard
End If

Set temparray = Nothing

End Function



二、 範例:工作表sheet1 範圍b5:d15

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

CopyClipboard
On Error Resume Next

If Intersect(Target, Worksheets("sheet1").Range("b5:d15")) Is Nothing Then
Application.CellDragAndDrop = True '範圍外、另一個工作表
Else
Application.CellDragAndDrop = False '範圍內
End If

End Sub

三、同時開2個活頁簿以上才需要
Private Sub Workbook_Deactivate()
CopyClipboard '多這一行
Application.CellDragAndDrop = True
End Sub

至於還有沒有bug,不確定…
因為我平常根本不會去用這種功能
不確定有沒有什麼地方漏掉
刪,不小心,多發一篇
1234567890
snare wrote:
您不說我還沒發現到...(恕刪)


沒有啦~~~哈哈^^""
其實您說的沒錯,這真的只是小問題,
在下也是覺得只要實用上夠用也就很OK了。


您在下面初補充的 ClipBoard 的用法,在下看了很感興趣,
謝謝大大您的分享^^ 在下先來研究內容做下測試看看。
  • 2
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?