Excel用巨集vb命令怎指定某一列鎖定,其他單元格可編輯與合併?

2025-03-02 08:30:26 字數 5378 閱讀 6352

excel用巨集vb命令怎指定某一列鎖定,其他單元格可與合併?

1樓:

應該無法實現,excel本身是二維**,行列都是關聯的,保護了列,本身行的結構也不能夠進行修改,而且工作表保護是本身就保護了工作表結構的一致性,所以只能在原有結構基礎上進行修改,不能進行格式的調整,格式部分此拿只能修改填充這類非結構內容,如果非要修改,那麼可以直接用vba模擬鎖定工作表的某一列,也就是在某一列所有單元格上觸發select事件,可森昌搭以自動取消select,轉移到其他迅兄位置或者直接提示報警框,下面是個示例:

結果如下:<>

這種保護並不是加密。

2樓:網友

點選滑鼠右鍵,選擇「新建」選項,然後點選「mircosoft office excel 2007」選項新建乙個excel檔案。製作**、寫入資料。選擇介面上方的「開發工具」選項,祥弊然後點選「巨集」選項寫明vba**名稱,然後點選「建立」按鈕。

寫入指定的vab**。點選插入乙個按鈕控制項,並命名為「合併內容」。選中「合併內容」控制項,然後點選滑鼠右鍵,選擇「指定巨集」。

將編寫的**指定至按鈕控制項上,然後點選「確定」按鈕。點選一次按鈕纖宴孝控制項,指定單元格的內毀稿容就自動合併完成了。

在excel裡利用vba怎麼對指定單元格,或區域單元格保護

3樓:一棵無所不知的小白菜

在excel的工具功能中進入vba器執行巨集保護公式的功能,即可對指定單元格,或區域單元格進行保護。

具體操作步驟如下:

3、點選excel工作薄的工具——巨集。

4、在彈出的介面選擇保護公式,點選執行。

5、最後按alt+f11在彈出的介面輸入密碼即可。

注意事項:為了避免別人進入vba模式檢視解鎖密碼或者亂修改**,最後一定要記得將巨集設定密碼。

4樓:很多很多

1、開啟excel2003,輸入並好相關的資料,如下圖,錄入九年級學生相關的成績,並設定好字型大小和行列的寬高等。

3、插入vba模組,點選工具——巨集——visual basic 器,4、在器那裡點選插入——模組,就新建乙個vba模組頁面。

5、在vba模式那裡編寫如下圖的**,用sub給**起名稱如:保護公式,啟用並解除工作表密碼(之前沒有設定密碼也可以這樣寫),同時解決單元格的鎖定,選中所有單元格並鎖定隱藏,然後加密,儲存並退出vba模式。

6、執行**:點選excel工作薄的工具——巨集——巨集。

5樓:網友

首先要知道,要保護乙個單元格不能,需要滿足兩個條件,第乙個是設定單元格格式->保護->鎖定要勾選,然後整個表要鎖定。

解決思路如下:

定義目標表 set sh = sheets("sheet1"),可以修改**名稱。

先解鎖整個表。

選擇所有的單元格,並設定單元格格式->保護->取消勾選鎖定= false

選擇目標單元格區域,並設定單元格格式->保護->勾選鎖定要"b2:e7").select 這裡可以改變目標區域b2:e7= true

鎖定整個表。

完整**:sub protectrange()

set sh = activesheetset sh = sheets("sheet1")'解鎖表。

選擇所有的單元格並設定不鎖定。

false選擇目標單元格b2:e7,並設定鎖定。

b2:e7").select

true 鎖定表。

end sub

效果圖:

6樓:匿名使用者

同時按alt和f11進入巨集介面,點選單的插入,模組,貼上如下**:

sub test()

truerange("g5:g6, h5, g10:h13").locked = false

end sub

密碼自己改,執行此巨集(直接按f5)就可以了。

7樓:匿名使用者

range("a1:b5")

換成:range("g5:g6","h5","g10:h10","g13:h13")

如果你的**能實現保護的話,把裡面的都替換就行了。

excel 通過vb**凍結特定區域單元格

8樓:tat蘿蔔

1、vba裡插入乙個窗體,showmodal設為false2、窗體里加個列表框,rowsource設為f8:h123、在要使用的工作表裡:

private sub worksheet_activate()end sub

private sub worksheet_activate()end sub

基本就可以了。

excel單元格 用巨集鎖定與解鎖

9樓:革罡禹秋芸

工具:office2013

方法如下:1.選擇要解除鎖定的單元格,點選右鍵,選擇「設定單元格格式」:

2.在保護選項卡中,找到並取消勾選「鎖定」:

3.確定之後,選擇的單元格就被解決了鎖定,像保護工作表之類的就不會再作用於這些解除鎖定的單元格上。

10樓:方括號

保護工作表後,鎖定才起作用。所以應解除第一列的鎖定,再保護工作表。

然後alt+f11,將下面**貼上到某個工作表處。

private sub worksheet_change(byval target as range)

if = 1 then

range("a:a").select

if cells(, = "" then= false

else true

cells(, = false

end if

cells(,drawingobjects:=true, contents:=true, scenarios:=true

end if

end sub

程式修改的是a列。

需要乙個excel的vb巨集,達到這個效果:選中某列,相鄰兩單元格合併。

11樓:網友

你說的什麼呀, 你還是上個圖吧, 理解起來真費勁。

vba 如何將乙個已經動態生成的excel工作表裡的某兩個單元格進行判斷,並給其他單元格進行合併?

12樓:計算機專業達人

因為excel的特性,其中的內容都是儲存在各個單元格中,通常情況下,對excel的多個單元格進行復制後再貼上時仍然會貼上到與複製時數量相同的單元格中。

如果想把多個單元格中的文字內容複製後貼上到乙個單元格中,(也就是合併到乙個單元格中),雖然用函式或者連線符(&)等可以實現這個目的,不過使用起來會有點麻煩。因此,關於把多個單元格內容合併為乙個單元格的操作,詳細的方法如下:

首先,先選擇要合併的單元格區域。

選擇單元格區域後,用點選開始選項卡中的「複製」按鈕或者按鍵盤的「ctrl+c」鍵等方法進行復制。

複製後點選開始選項卡中下圖所示的「剪貼簿」功能區右下角的按鈕,這個按鈕比較小。

點選後會開啟excel自帶的剪貼簿,在剪貼簿中會顯示已複製的內容。

此時用滑鼠雙擊要貼上的單元格,讓游標在該單元格中閃爍。

也可以用滑鼠單擊選中要貼上的單元格,再在欄中點選滑鼠,讓游標在欄中閃爍。

然後用滑鼠點選剪貼簿中已複製的內容。

點選剪貼簿內容後,之前複製的多個單元格中的內容就合併貼上到所選單元格中了。

貼上後點選剪貼簿的關閉按鈕關閉剪貼簿即可。

貼上後的內容通常是分行排列的,如果想把所有複製的內容都排列在一行,可以點選開始選項卡中圖示的「自動換行」按鈕,取消單元格中的自動換行。

取消單元格的自動換行後,所有內容就都排列在一行了,這樣就完成了多個單元格內容的合併。

13樓:陽光上的橋

直接用資料【資料透視表】功能可能實現這樣的彙總,一般系統功能可以實現的不建議用vba。要用vba寫**也是可以實現的,只是稍微有點長,如果有興趣可以研究,思路是使用兩個陣列,一是原表資料,乙個是彙總後的新表資料,對原表掃瞄,把資料累加到新表中,關鍵**示例如下:

option explicit

sub 彙總()

dim arr1, arr2, m, n, i1, i2, j, n2, x

arr1 = '提取原表資料。

n = ubound(arr1)

m = ubound(arr1, 2)

redim arr2(1 to n, 1 to m) '定義新表。

n2 = 0

for i1 = 1 to n

x = 0 '尋找i1行在新表中的位置。

for i2 = 1 to n2

if arr2(i2, 1) = arr1(i1, 1) and arr2(i2, 2) = arr1(i1, 2) and arr2(i2, 3) = arr1(i1, 3) and arr2(i2, 4) = arr1(i1, 4) then

x = i2

exit for

end if

next i2

if x = 0 then '新行。

n2 = n2 + 1

x = n2

for j = 1 to 4

arr2(x, j) = arr1(i1, j)

next j

end if

for j = 5 to m

if vartype(arr1(i1, j)) = vbstring then

arr2(x, j) = arr2(x, j) &arr1(i1, j) '文字鏈結。

elsearr2(x, j) = arr2(x, j) +arr1(i1, j) '數值累加。

end if

next j

next i1

把彙總結果寫入新檔案。

if n2 > 0 then

range("a1").resize(n2, m) = arr2

end if

end sub

你好 求教excel當中如何用vb實現指定的某乙個單元格只要被修改就立刻自動儲存!謝謝

14樓:網友

當a2被修改,立刻自動儲存一次。其中,y2是用來比較的輔助單元,可把它隱藏掉。

private sub worksheet_selectionchange(byval target as range)

if range("y2") end if

end sub

15樓:網友

我覺得你這樣會增加電腦負擔。可以在開啟excel時就執行vb**,把指定的單元格數值賦值給乙個變數,然後不斷地檢查這個單元格是否等於變數,如果相等,就執行儲存。

vb生成資料,用excel輸出並自動畫曲線

直接用vbline建座標,畫圖,很方便。如何將vb中的資料轉到excel,並在vb或excel中畫出曲線圖?開啟excel,在選單的 工具 巨集 錄製新巨集 然後開始對excel操作 比如改變 的大小等 操作完了停止錄製巨集,在 巨集 visual basic器 模組 裡的模組就有你錄製的過程的 稍微修改就...

EXCEL巨集過程解釋,EXCEL中巨集的用法是什麼,最好多舉幾個案例。

我逐段解釋,希望你看得懂。a sheets 流水賬 a end xlup row 獲取 流水賬 表資料的最後一行,我假設是t行。for b to sheets 流水賬 cells a ,b value cells b , value cells b , value 這個註釋掉了不起作用。next 以...

用巨集實現自定義排序,EXCEL中利用巨集自定義排序

excel中利用巨集自定義排序 不用巨集也可以達到此目的。進入工具選單 選項 自定義序列,新增你要的序列。進入資料選單 排序,選擇首要排序為城市此列,點選左下角的選項,在排序選項對話方塊中選擇自定義,選中剛才自定義的序列,再完成排序即可。excel中自定義排序的巨集怎麼編寫?如 資料範圍a g,先按a列降序...