這是一個很好的例子。首先我開始學習VBA,所以要溫柔。所以我在EXCEL 2007中有這個vba宏,根據用戶在3個下拉菜單中的選擇自動隱藏/顯示錶中的行。僅供參考,該表根據主表自動更新主表,其中包含所有可能的選擇,根據用戶的選擇隱藏不需要的行。
現在我想把它帶到另一個層面。我想要的是能夠從WORD 2007中調用宏,以便將表格複製到所需位置的單詞文檔。爲了達到這個目的,下拉菜單需要放在word文檔中,EXCEL宏必須從word文檔中「讀取」選定的值來構建表格。換句話說,用戶將永遠不會看到EXCEL部分,並根據他從下拉菜單中選擇的內容在他的word文檔中獲取表格。
我插入了建立表格的excel宏。最終的結果會是這樣從詞,C1,C2和C3,這是推動IF語句中的變量,將變量下拉菜單從Word中調用VBA excel宏來粘貼一個表,根據word中的下拉列表進行更新
Sub Sequence()
Application.ScreenUpdating = False
ActiveSheet.Cells.EntireRow.Hidden = False
If Range("C2").Value = 2 Then
Rows("48:67").Hidden = True
Else
Rows("48:67").Hidden = False
End If
If Range("C3").Value = 2 Then
Rows("6:7").Hidden = True
Else
Rows("6:7").Hidden = False
End If
If Range("C1").Value = 1 Then
Rows("9:12").Hidden = True
Rows("14:17").Hidden = True
Rows("19:22").Hidden = True
Rows("24:27").Hidden = True
Rows("29:47").Hidden = True
Rows("48:51").Hidden = True
Rows("53:56").Hidden = True
Rows("58:61").Hidden = True
Rows("63:66").Hidden = True
j = 1
k = -2
For i = 6 To 67
If Rows(i).Hidden = False Then
Range("A" & i) = j
j = j + 1
Range("B" & i) = k
k = k + 1
End If
Next i
End If
If Range("C1").Value = 2 Then
Rows("9").Hidden = True
Rows("11").Hidden = True
Rows("13").Hidden = True
Rows("15").Hidden = True
Rows("17").Hidden = True
Rows("19").Hidden = True
Rows("21").Hidden = True
Rows("23").Hidden = True
Rows("25").Hidden = True
Rows("27").Hidden = True
Rows("29:31").Hidden = True
Rows("33:35").Hidden = True
Rows("37:39").Hidden = True
Rows("41:43").Hidden = True
Rows("45:47").Hidden = True
Rows("48:51").Hidden = True
Rows("53:56").Hidden = True
Rows("58:61").Hidden = True
Rows("63:66").Hidden = True
j = 1
k = -2
For i = 6 To 67
If Rows(i).Hidden = False Then
Range("A" & i) = j
j = j + 1
Range("B" & i) = k
k = k + 1
End If
Next i
End If
If Range("C1").Value = 3 Then
Rows("9").Hidden = True
Rows("11").Hidden = True
Rows("13").Hidden = True
Rows("15").Hidden = True
Rows("17").Hidden = True
Rows("19").Hidden = True
Rows("21").Hidden = True
Rows("23").Hidden = True
Rows("25").Hidden = True
Rows("27").Hidden = True
Rows("29").Hidden = True
Rows("31").Hidden = True
Rows("33").Hidden = True
Rows("35").Hidden = True
Rows("37").Hidden = True
Rows("39").Hidden = True
Rows("41").Hidden = True
Rows("43").Hidden = True
Rows("45").Hidden = True
Rows("47").Hidden = True
Rows("48:50").Hidden = True
Rows("52:54").Hidden = True
Rows("56:58").Hidden = True
Rows("60:62").Hidden = True
Rows("64:66").Hidden = True
j = 1
k = -2
For i = 6 To 67
If Rows(i).Hidden = False Then
Range("A" & i) = j
j = j + 1
Range("B" & i) = k
k = k + 1
End If
Next i
End If
If Range("C1").Value = 4 Then
j = 1
k = -2
For i = 6 To 67
If Rows(i).Hidden = False Then
Range("A" & i) = j
j = j + 1
Range("B" & i) = k
k = k + 1
End If
Next i
End If
Range("A5:D67").Copy
Application.ScreenUpdating = True
End Sub
兩個建議。首先,這裏沒有人會介意閱讀你的代碼。二,把你的問題分成幾段 - 我不清楚你在問什麼。 – enderland