我有一个包含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