Board logo

標題: 表單微調要如何作呢? [打印本頁]

作者: sppk22    時間: 2016-2-7 22:20     標題: 表單微調要如何作呢?

多筆資料匯入至另一表單,在另一表單中可自由選擇任一筆
不知高手能否指導一下呢??
作者: 准提部林    時間: 2016-2-8 12:37

給個參考, 請自行去套:
[attach]23253[/attach]
作者: sppk22    時間: 2016-2-8 16:09

回復 2# 准提部林


    謝謝大大的回覆,小弟權限不夠,不能下載,可否公佈程式碼
作者: sppk22    時間: 2016-2-8 16:13

回復 3# sppk22


    Vb方式表現行數會很多行嗎?小弟不才,初學者
作者: 准提部林    時間: 2016-2-8 17:23

回復 3# sppk22

另一下載址:
http://www.funp.net/938049

純公式,這用vba反而礙手∼∼∼
作者: sppk22    時間: 2016-2-8 18:24

回復 5# 准提部林


    =INDEX(Sheet1!$B:$L,MATCH(A27,Sheet1!$A:$A,),$AS$19)&""
謝謝大大耐心的回覆..在此恭賀大大新年快樂,今年一切種種順心如意,心想事成..
小弟對上述函數有點不太懂..可否解釋一下嗎???
作者: sppk22    時間: 2016-2-8 18:48

本帖最後由 sppk22 於 2016-2-8 18:50 編輯

回復 6# sppk22

原輸入格式為    對象            07000

採取之後為    對象          7000       
原金額100,000   採樣後為100000
格式有點跑掉...要如何處置呢??
作者: 准提部林    時間: 2016-2-8 19:56

回復 7# sppk22


=INDEX(Sheet1!$B:$L,MATCH(A23,Sheet1!$A:$A,),$AS$19)&""
改成:
=INDEX(Sheet1!$B:$L,MATCH(A23,Sheet1!$A:$A,),$AS$19)

對像公式相同!!!

都是最基本簡單的公式,不懂也沒法說明,可進說明檔去了解!!!
作者: sppk22    時間: 2016-2-8 21:17

回復 8# 准提部林

謝謝大大耐心的說明指導..小弟巳明白
但還有另一個問題..試問
小弟在B3、B4...,現況試作二個USERFORM1、USERFORM2要如何點選到B~H欄位都能顯示USERFORM相對應之表單及欄位呢??
作者: GBKEE    時間: 2016-2-9 11:28

回復 9# sppk22
試試看
UserForm的程式碼
  1. Private Sub TextBox1_Change()
  2.     ActiveCell = TextBox1
  3. End Sub
複製代碼
sheets("sheet1")模組的程式碼
  1. Private Sub Worksheet_SelectionChange(ByVal T As Range)
  2.     Select Case T.Row
  3.         Case 3
  4.             If UserForm2.Visible Then Unload UserForm2
  5.             With UserForm1
  6.                 .Label2 = Cells(2, T.Column)
  7.                 .TextBox1 = T.Value
  8.                 .Show (0)
  9.             End With
  10.         Case 4
  11.             If UserForm1.Visible Then Unload UserForm1
  12.                 UserForm2.TextBox1 = T.Value
  13.                 UserForm2.Show (0)
  14.         Case Else
  15.     End Select
  16. End Sub
  17. Private Sub Worksheet_Change(ByVal Target As Range)
  18.     Select Case Target.Row
  19.         Case 3
  20.             If UserForm2.Visible Then Unload UserForm2
  21.             With UserForm1
  22.                ' .Label2 = Cells(2, T.Column)
  23.                 .TextBox1 = Target.Value
  24.                 '.Show (0)
  25.             End With
  26.         Case 4
  27.             If UserForm1.Visible Then Unload UserForm1
  28.                 UserForm2.TextBox1 = Target.Value
  29.                 'UserForm2.Show (0)
  30.         Case 15 '申請類別
  31.             If Target < 1 Or Target > 4 Then
  32.                 MsgBox "申請類別 須為 1 - 4 之間 "
  33.             Else
  34.                 Check_Box 申請類別, Target.Value
  35.             
  36.             End If
  37.         Case 16  '核准種類
  38.             If Target < 1 Or Target > 5 Then
  39.                 MsgBox "核准種類 須為 1 - 5 之間 "
  40.             Else
  41.                 Check_Box "核准種類", Target.Value
  42.             
  43.             End If
  44.         Case 22  '源.方式...請自行練習
  45.         
  46.         
  47.     End Select
  48. End Sub
  49. Private Sub Check_Box(ByVal xTitle As String, ByVal No As Integer) '9999(A)表單中項目勾選的子程式
  50.     Dim Ar(), E As Object
  51.     With Sheet1 'SHEETS("999A")
  52.         Select Case xTitle
  53.             Case "申請類別"   '指定的項目置入陣列
  54.                 Ar = Array(.Shapes("Check Box 830"), .Shapes("Check Box 829"), .Shapes("Check Box 827"), .Shapes("Check Box 828"))
  55.                
  56.             Case "核准種類"   '指定的項目置入陣列
  57.                 Ar = Array(.Shapes("Check Box 10"), .Shapes("Check Box 12"), .Shapes("Check Box 14"), .Shapes("Check Box 39"), .Shapes("Check Box 13"))
  58.             
  59.             Case Else
  60.                 MsgBox "申請 ?? 程式碼有誤 "
  61.                 Exit Sub
  62.             
  63.         End Select
  64.     End With
  65.     For Each E In Ar                   '所有指定的項目
  66.         E.OLEFormat.Object.Value = 0   '取消
  67.     Next
  68.     Ar(No - 1).OLEFormat.Object.Value = 1  '勾選
  69. End Sub
複製代碼

作者: sppk22    時間: 2016-2-9 12:24

回復 10# GBKEE


    謝謝GBKEE大的指導..小弟會用心學習,祝GBKEE大新的一年能順心及新年快樂
作者: GBKEE    時間: 2016-2-9 14:49

回復 11# sppk22

[attach]23255[/attach]


你核取方塊有連結到儲存格

可簡化10#的程式碼
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.     Select Case Target.Row
  3.         Case 3
  4.             If UserForm2.Visible Then Unload UserForm2
  5.             With UserForm1
  6.                ' .Label2 = Cells(2, T.Column)
  7.                 .TextBox1 = Target.Value
  8.                 '.Show (0)
  9.             End With
  10.         Case 4
  11.             If UserForm1.Visible Then Unload UserForm1
  12.                 UserForm2.TextBox1 = Target.Value
  13.                 'UserForm2.Show (0)
  14.         Case 15 '申請類別
  15.             If Target < 1 Or Target > 4 Then
  16.                 MsgBox "申請類別 須為 1 - 4 之間 "
  17.             Else
  18.                 Check_Box "AO24:AR24", Target.Value
  19.             
  20.             End If
  21.         Case 16  '核准種類
  22.             If Target < 1 Or Target > 5 Then
  23.                 MsgBox "核准種類 須為 1 - 5 之間 "
  24.             Else
  25.                 Check_Box "AO25:AS25", Target.Value
  26.             
  27.             End If
  28.         Case 22  '源.方式...請自行練習
  29.         
  30.         
  31.     End Select
  32. End Sub
  33. Private Sub Check_Box(ByVal xRange As String, ByVal No As Integer)  '9999(A)表單中項目勾選的子程式
  34.     With Sheet1.Range(xRange) '所有指定項目的連結楚存格
  35.         .Cells = ""           '清除=>False
  36.         .Cells(1, No) = 1     '勾選=>True
  37.     End With
  38. End Sub
複製代碼

作者: sppk22    時間: 2016-2-10 18:54

回復 12# GBKEE


    謝謝G大的回覆
能否在請問
(1)
=--(INDEX(輸入區!$B:$L,MATCH($AD$26,輸入區!$A:$A,),$AS$19)=INDEX({10,20,40,50,60,99,"2X","2A","2B"},COLUMN(A1)))
上述加入"2X,2A,2B"為何會顯示錯誤訊息,請問這要如何處置呢???
(2)
微調按鈕可否列印1~6筆嗎??或3~5筆的列印嗎??
作者: sppk22    時間: 2016-2-10 23:03

回復 12# GBKEE


    Case 15 '申請類別
            If Target < 1 Or Target > 4 Then
                MsgBox "申請類別 須為 1 - 4 之間 "
            Else
                Check_Box "AO24:AR24", Target.Value
            
            End If
        Case 16  '核准種類
            If Target < 1 Or Target > 5 Then
                MsgBox "核准種類 須為 1 - 5 之間 "
            Else
                Check_Box "AO25:AS25", Target.Value
            
            End If
有按照大大的指示.....但Check_Box "AO24:AR24", Target.Value、Check_Box "AO25:AS25", Target.Value都無反應....
作者: sppk22    時間: 2016-2-13 19:50

回復  GBKEE


    Case 15 '申請類別
            If Target < 1 Or Target > 4 Then
              ...
sppk22 發表於 2016-2-10 23:03


上述巳解決..小弟輸入錯值.所產生..抱歉

但微調按鈕可否列印1~6筆嗎??或3~5筆的列印嗎??
另微調按鈕..在刪除表單時..全部回覆到第1筆..要如何處置呢???
作者: GBKEE    時間: 2016-2-14 13:46

回復 15# sppk22


   
但微調按鈕可否列印1~6筆嗎??或3~5筆的列印嗎

應是製作一表單可輸入,第一筆的數值,最後一筆的數值  
確定後跑迴圈印列: 9999(A)的AS19 依序為第一筆的數值到最後一筆的數值

如何印列,可自行錄製巨集練習,再套入迴圈中
作者: sppk22    時間: 2016-2-14 16:02

回復 16# GBKEE

謝謝大大的講述,小弟會努路上腳步
    小弟有做一個表單..為多項輸入方式,但前述均為單項模式,但碰到多項就無處理
多項表單為USERFORM24
作者: sppk22    時間: 2016-2-16 01:34

回復 17# sppk22


    大大能否幫忙協助呢??
作者: GBKEE    時間: 2016-2-16 07:19

回復 18# sppk22
試試看
  1. Private Sub Worksheet_SelectionChange(ByVal T As Range)
  2.     If T.Count > 1 Then
  3.         MsgBox T.Address & " 範圍必須是單一的儲存格"
  4.         Exit Sub
  5.     End If
  6.     '如不要上述的程式碼 T ->T.Cells(1) 或 T(1)
  7.     Select Case T.Row 'T.Cells(1).Row
  8.         Case 3
  9.             If UserForm2.Visible Then Unload UserForm2
  10.             With UserForm1
  11.                 .Label2 = Cells(2, T.Column)
  12.                 .TextBox1 = T.Value '->T.Cells(1) 或T(1)
  13.                 .Show (0)
  14.             End With
  15.         Case 4
  16.             If UserForm1.Visible Then Unload UserForm1
  17.                 UserForm2.TextBox1 = T.Value '->T.Cells(1) 或T(1)
  18.                 UserForm2.Show (0)
  19.         Case 37
  20.             If UserForm2.Visible Then Unload UserForm2
  21.                 UserForm26.TextBox1 = T.Value '->T.Cells(1) 或T(1)
  22.                 UserForm26.Show (0)
  23.         Case Else
  24.     End Select
  25. End Sub
複製代碼

作者: GBKEE    時間: 2016-2-16 08:10

回復 17# sppk22

試試看
UserForm26
  1. Dim Rng As Range, xAr()
  2. Private Sub UserForm_Initialize()
  3.     Dim i As Integer
  4.     With ComboBox1
  5.         .AddItem "20 房地建地(不含建物)"
  6.         .AddItem "21 空地"
  7.         .AddItem "22 農地"
  8.         .AddItem "23 林地"
  9.         .AddItem "24 養殖地"
  10.         .AddItem "25 土地及建物(住宅用)"
  11.         .AddItem "26 土地及廠房"
  12.         .AddItem "27 不含土地之建物(住宅用)"
  13.         .AddItem "28 不含土地之廠房"
  14.         .AddItem "29 高爾夫球場"
  15.         .AddItem "2X 其他不動產"
  16.         .AddItem "2A 土地及建物(商業用)"
  17.         .AddItem "2B 不含土地之建物(商業用)"
  18.     End With
  19.      
  20.     '  xAr = Array("20 房地建地(不含建物)", "21 空地","22 農地",,,,,)
  21.     '  xAr = Sheets("資料").Range("A1:A15").Value
  22.     ' ComboBox1.List = xAr
  23.    
  24.   
  25.     Set Rng = Cells(37, ActiveCell.Column).Resize(13) '
  26.     Debug.Print Rng.Address
  27.     ReDim xAr(1 To Rng.Count)
  28.     For i = 1 To Rng.Count
  29.        Set xAr(i) = Controls("TextBox" & i)
  30.        Controls("TextBox" & i) = Rng(i).Text   '工作表資料寫到 TextBox
  31.     Next
  32.     'TextBox8 = [B37]  '調整從1開始對應到工作表上的儲存格
  33.     'TextBox9 = [B38]  '.....
  34.    
  35.    
  36.     '*****或是指定TextBox位置對應到工作表上的儲存格
  37.     'i = 0
  38.     'For Each E In Array(5, 6, 9, 12, 1, 4, 2, 3)
  39.     '    Set xAr(i) = Controls("TextBox" & E)
  40.     '    Controls("TextBox" & E) = Rng(i + 1)
  41.     'Next
  42.     '***************************************
  43.     '
  44. End Sub
  45. Private Sub CommandButton1_Click() '確定 資料寫到工作表上
  46.     For i = 1 To Rng.Count
  47.         Rng(i) = xAr(i).Text
  48.     Next
  49. End Sub

  50. Private Sub ComboBox1_Change()
  51.     TextBox9 = Left(ComboBox1, 2)
  52. End Sub

  53. Private Sub OptionButton1_Click()
  54.     If OptionButton1 = True Then
  55.         TextBox7 = Cells(3, Rng.Column).Value
  56.     Else
  57.         TextBox7 = ""
  58.     End If
  59. End Sub
複製代碼





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