我有一個包含3個表,即「不健康的食物」,「健康食品」和「食品」在Excel中使用宏來編輯另一個表格中的單元格值?
兩個食物表包含的食品列表以及它們的脂肪,蛋白質和碳水化合物含量沿着Excel項目。使用這些數據,他們每100克的卡路里也被計算出來。這些食物分爲三個小標題:食物,零食和飲料。我想要創建一個宏,它將使用每個桌子上每個食物項旁邊的「添加到餐點」按鈕啓動,這個按鈕將把行的內容複製到「膳食」類中的第一個可用行。
這樣做有可能完成嗎?如果是這樣,怎麼樣?
我有一個包含3個表,即「不健康的食物」,「健康食品」和「食品」在Excel中使用宏來編輯另一個表格中的單元格值?
兩個食物表包含的食品列表以及它們的脂肪,蛋白質和碳水化合物含量沿着Excel項目。使用這些數據,他們每100克的卡路里也被計算出來。這些食物分爲三個小標題:食物,零食和飲料。我想要創建一個宏,它將使用每個桌子上每個食物項旁邊的「添加到餐點」按鈕啓動,這個按鈕將把行的內容複製到「膳食」類中的第一個可用行。
這樣做有可能完成嗎?如果是這樣,怎麼樣?
使用按鈕引用工作表上的單元格的問題是,按鈕是工作表上的對象,這使得根據列/行獲取其位置非常棘手。
這裏是蠻力如果你想使用按鈕的方法。假設在Healthy Foods
您在folllowing:
A B C D
1 Item Fat Protein Sugar
2 Apple 0 50 5 |Add To Menu| <-- this is a commandbutton called **Apple**
3 Snickers 100 0 100 |Add to Menu| <-- this is a commandbutton called **snickers**
將下面的代碼細節,下一個可用行復制Meal
(NB - 我認爲膳食如上所示相同的表格式)
Private Sub Apple_Click()
AddMealToMenu Range("A2") //For each button you must specify range where item is in table
End Sub
Sub AddMealToMenu(ref As Range)
Dim mealItem As Range
Set mealItem = Range(ref, ref.Offset(0, 3))
mealItem.Copy Destination:=GetNextFreeRow
End Sub
Function GetNextFreeRow() As Range
With Worksheets("Meal")
If .Range("A2") = vbNullString Then
Set GetNextFreeRow = .Range("A2")
Else
Set GetNextFreeRow = .Range("A1").End(xlDown).Offset(1, 0)
End If
End With
End Function
對於士力架你需要添加simialr代碼爲蘋果即
Private Sub Snickers_Click()
AddMealToMenu Range("A3")
End Sub
如果這個工程你很好,但它可能需要一些設置,並且是一種強力方法。
是否有必要點擊按鈕? – 2011-05-14 15:27:36