返回列表 上一主題 發帖

寫入原位

有關Application.InputBox的問題

各位前輩你們好!
      前輩!範例
          練習!$N$5=8
          練習!$O$5=2
          練習!$P$5=7
      Sub 練習()
          ZZ = Application.InputBox("請不吝賜教!", "     請教前輩們!!", Type:=0)
          If ZZ = False Then Exit Sub  
          [$M$1] = ZZ
      End Sub   
          得到[$M$1]=[LeoV-67.xlsm]練習!$N$5+[LeoV-67.xlsm]練習!$O$5+[LeoV-67.xlsm]練習!$P$5
          需求[$M$1]=8+2+7這樣的型態
          不知程式為何?
          請不吝再賜教謝謝再三!!

TOP

回復 1# myleoyes
試試看
  1. Option Explicit
  2. Sub 練習()
  3.     Dim ZZ As Range, E As Range, M
  4.     On Error Resume Next
  5.     Set ZZ = Application.InputBox("請不吝賜教!", "     請教前輩們!!", Type:=8)
  6.     'Type     選擇性的 Variant。指定傳回的資料類型。如果省略此引數,對話方塊將傳回文字。這可為下列值的其中之一或其中幾個的和。
  7.     '值 意義
  8.     '0 公式
  9.     '1 數字
  10.     '2 文字 (字串)
  11.     '4 邏輯值 (True 或 False)
  12.     '8 儲存格參照,作為 Range 物件
  13.     '16 錯誤值,比如 #N/A
  14.     '64 數值陣列
  15.     If ZZ = False Then Exit Sub
  16.    
  17.     For Each E In ZZ.Cells
  18.         M = IIf(M = "", "", M & "+") & IIf(E = "", "0", E)
  19.     Next
  20.     [$M$1] = M
  21. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 2# GBKEE
良師!謝謝!!Type:=8 只能單取無法複選之前有試過
           請麻煩再修改一下辛苦囉!謝謝再三!!

TOP

回復 3# myleoyes
InputBox 顯示後: 按下Ctrl鍵 可複選
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 4# GBKEE
良師!謝謝!!你可能誤解小弟所謂的複選      
           如附動畫檔所示!!
           請麻煩再修改一下辛苦囉!謝謝再三!!

LeoV67.gif (366.03 KB)

LeoV67.gif

LeoV67.rar (18.05 KB)

TOP

本帖最後由 GBKEE 於 2013-4-22 15:49 編輯

回復 5# myleoyes
按下Ctrl鍵 可複選: 就如工作表上選取多重範圍的儲存格
你試過嗎?
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 6# GBKEE
良師!謝謝!試過N次動畫檔就是按下Ctrl鍵複選的結果
        問題是Type:=8 只能接受單取無法複選才頭大
      其他的Type也試過[$M$1]沒有數字出現謝謝再三!!

TOP

回復 7# myleoyes
按下Ctrl  滑鼠選取不相連的儲存格,程式會用,連接的
例  Sheet2!$L$3,Sheet2!$L$5,Sheet2!$N$5
錄製巨集會有結果的

你希望得到的是公式 -> 需求[$M$1]=8+2+7這樣的型態
修改2#下方的程式碼可達到
  1. For Each E In ZZ.Cells
  2. M = IIf(M = "", "=", M & "+") & IIf(E = "", "0", E)
  3. Next
複製代碼



感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 8# GBKEE
良師!小弟知錯..對不起我錯了!
     原本程式
     Sub 練習()
          If Sheet2.[I1] = 1 Then 練習1
          If Sheet2.[I1] = 2 Then 練習2
     End Sub
     Sub 練習1()'數字相加
         Dim ZZ
         ZZ = Application.InputBox("請不吝賜教!", "     請教前輩們!!", Type:=8 + 1)
         If ZZ <= 0 Then Sheet2.[I1] = 2: Exit Sub
         [$M$1] = ZZ
     End Sub
     Sub 練習2()'數字相減
         Dim ZZ
         ZZ = Application.InputBox("請不吝賜教!", "     請教前輩們!!", Type:=8)
         If ZZ <= 0 Then Sheet2.[I1] = 1: Exit Sub
         [$M$1] = ZZ
     End Sub
     而良師的程式為練習3
     但使終沒有被用到所以才會讓我覺得納悶
     附上檔案又習慣性的用+符號來解釋問題所在!!
     實在抱歉!!辛苦囉!謝謝再三!!

LeoV67-1.gif (930.34 KB)

LeoV67-1.gif

TOP

寫入原位

各位前輩你們好!!
         前輩!請同時開啟資料檔與甲檔再按鈕
         問題如附檔說明
         請知道的前輩,不吝賜教謝謝再三!!
LeoV-68.rar (18.39 KB)

        靜思自在 : 要批評別人時,先想想自己是否完美無缺。
返回列表 上一主題