Board logo

標題: [發問] 想請教利用vba對execl檔案中的數值加上亂數的方法(己解決) [打印本頁]

作者: linnetkill    時間: 2011-11-16 13:31     標題: 想請教利用vba對execl檔案中的數值加上亂數的方法(己解決)

本帖最後由 linnetkill 於 2011-11-18 07:54 編輯

a        88         15         78         21         32         2
b        49         52         92         39         33         76
c        96         70         97         96         23         16
d        5         90         33         71         59         97
e        73         55         29         11         7         73
f        83         81         46         6         0         42
g        92         82         3         79         9         70
h        53         77         96         97         14         65
我想讓使用一開啟execl後
需要輸入密碼
如密碼錯誤針對於上述數字自動乘上亂數來改奱原來值
密碼正確數值就為正常不需乘上亂數
不知道是否可以利用VBA達到此功能
請各位高手可以幫忙解惑
作者: oobird    時間: 2011-11-17 08:56

沒用的,把安全性設為高後程式碼就不執行了。
作者: linnetkill    時間: 2011-11-17 11:16

版主大大
是否可以請教一下
如何利用vba讓開啟execl檔
數字自動乘上亂數來改變原來值
作者: mark15jill    時間: 2011-11-17 12:03

版主大大
是否可以請教一下
如何利用vba讓開啟execl檔
數字自動乘上亂數來改變原來值
linnetkill 發表於 2011-11-17 11:16



    亂數 的範圍?
作者: linnetkill    時間: 2011-11-17 12:55

亂數範圍為正數
0至99內均可
作者: oobird    時間: 2011-11-17 13:44

乘上亂數是簡單,循環一下即可
  1. For Each c In ActiveSheet.Cells.SpecialCells(2, 1)
  2.   c.Value = c.Value * Int(Rnd * 100)
  3.   Next
複製代碼
你要考慮的是如何恢復
作者: linnetkill    時間: 2011-11-17 15:27

版主大大
照你方式加入
可是儲存值並沒有改變
我附加檔案上去
是否可以幫我看一下
作者: luhpro    時間: 2011-11-17 19:06

本帖最後由 luhpro 於 2011-11-17 19:08 編輯

回復 7# linnetkill
你的程式要包在 Sub 與 End Sub 之間才能正常執行.

另外 For Each 後面要放 Range 範圍,
而不是只有一個儲存格.

還有, 程式若放在 ThisWorkBook,
建議要指明想要處理的儲存格所在的 Sheet,
而不是直接作用在 ActiveSheet,
以免處理程序作用到錯誤的儲存格或 Sheet.

Workbook_Open 可以透過程式碼區上方左側下拉式選單,
選擇 Workbook 自動產生表頭 Private Sub Workbook_Open() 與表尾 End Sub後,
再把開啟 Excel 時想要動作的程式放在其中即可

Private Sub Workbook_Open()
  For Each c In Sheets("Sheet1").Range("B1:G9")
    c.Value = c.Value * Int(Rnd * 100)
  Next
End Sub
作者: linnetkill    時間: 2011-11-18 07:53

感謝各位大大的提供




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)