返回列表 上一主題 發帖

表單微調要如何作呢?

回復 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
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 11# sppk22




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

可簡化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
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 15# sppk22


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

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

如何印列,可自行錄製巨集練習,再套入迴圈中
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 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
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 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
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 對父母要知恩,感恩、報恩。
返回列表 上一主題