我正在Excel中为奶牛场建立柴油记录管理系统。它的功能类似于原始的关系数据库系统。驾驶员,车辆和承包商将各自拥有一张床单。
如果出现错误,我试图添加一个Sub来删除条目。每个条目在相关电子表格的第1列中都有一个唯一的ID。
我的Sub应该遍历所有工作表,确定工作表的第1列中是否存在ID,如果工作表中存在ID,则删除该ID所在的行。
它不执行我正在尝试的操作,我也不知道为什么。任何帮助将不胜感激。
我也尝试选择EntireRow而不是删除它-只是看它是否选择了错误的行并删除,但是我的代码返回运行时错误1004:“ Range类的选择方法失败”。
def _extract_box_classifier_features(self, proposal_feature_maps, scope):
"""Extracts second stage box classifier features.
Args:
proposal_feature_maps: A 4-D float tensor with shape
[batch_size * self.max_num_proposals, crop_height, crop_width, depth]
representing the feature map cropped to each proposal.
scope: A scope name (unused).
Returns:
proposal_classifier_features: A 4-D float tensor with shape
[batch_size * self.max_num_proposals, height, width, depth]
representing box classifier features for each proposal.
"""
with tf.variable_scope(self._architecture, reuse=self._reuse_weights):
with slim.arg_scope(
resnet_utils.resnet_arg_scope(
batch_norm_epsilon=1e-5,
batch_norm_scale=True,
weight_decay=self._weight_decay)):
with slim.arg_scope([slim.batch_norm],
is_training=self._train_batch_norm):
blocks = [
resnet_utils.Block('block4', resnet_v1.bottleneck, [{
'depth': 2048,
'depth_bottleneck': 512,
'stride': 1
}] * 3)
]
proposal_classifier_features = resnet_utils.stack_blocks_dense(
proposal_feature_maps, blocks)
return proposal_classifier_features
代码运行无错误,但不会删除任何行。 我怀疑该错误与ActiveSheet或Outer For循环有关(“对于WorkSheets中的每个对象”)。单击按钮即可激活该宏。如果我将ID放在按钮所在的工作表的第1列中,它将删除正确的行。如果相同的ID位于其他多个工作表的第1列中,则这些行不会被删除。如果通过按钮单击来运行宏,而ActiveSheet中没有ID,则不会删除任何行。
答案 0 :(得分:0)
我通过使引用完全合格来稍微修改了代码。
它在我的末端起作用。看看是否适合您。
Dim r As Integer
Dim To_Delete As String
To_Delete = InputBox("Input Entry ID to delete", "Delete Record", "Entry_ID")
Application.ScreenUpdating = False
For Each sht In ThisWorkbook.Worksheets
For r = sht.UsedRange.Rows.Count To 1 Step -1
If sht.Cells(r, "A").Value = To_Delete Then
sht.Cells(r, "A").EntireRow.Delete
End If
Next r
Next sht
Application.ScreenUpdating = True