Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA代码,用于将数据从一张图纸复制到另一张图纸_Vba_Excel - Fatal编程技术网

Excel VBA代码,用于将数据从一张图纸复制到另一张图纸

Excel VBA代码,用于将数据从一张图纸复制到另一张图纸,vba,excel,Vba,Excel,我正在努力实现以下目标: 记录每天最忙的时间(即最高客户数量),并将其详细信息(客户数量、花费金额、平均花费时间)记录到第二个电子表格中 在第二个电子表格中,每次都会添加一个新列。它将只记录每天最繁忙的时刻 Sub DailySales() Dim dailySht As Worksheet 'worksheet storing latest store activity Dim recordSht As Worksheet 'worksheet to store the hi

我正在努力实现以下目标:

  • 记录每天最忙的时间(即最高客户数量),并将其详细信息(客户数量、花费金额、平均花费时间)记录到第二个电子表格中
  • 在第二个电子表格中,每次都会添加一个新列。它将只记录每天最繁忙的时刻

    Sub DailySales()
        Dim dailySht As Worksheet 'worksheet storing latest store activity
        Dim recordSht As Worksheet 'worksheet to store the highest period of each Day
        Dim lColDaily As Integer ' Last column of data in the store activity sheet
        Dim lCol As Integer ' Last column of data in the record sheet
        Dim maxCustomerRng As Range ' Cell containing the highest number of customers
        Dim maxCustomerCnt As Long ' value of highest customer count
    
        Set dailySht = ThisWorkbook.Sheets("Supermarket Data")
    
        Set recordSht = ThisWorkbook.Sheets("Record Data")
        With recordSht
            lCol = .Cells(1, .Columns.Count).End(xlToLeft).column
        End With
        With dailySht
            lColDaily = .Cells(1, .Columns.Count).End(xlToLeft).column
            maxCustomerCnt = Application.Max(.Range(Cells(2, 1), Cells(2, lColDaily)))
            Set maxCustomerRng = .Range(.Cells(2, 1), .Cells(2, lColDaily)).Find(What:=maxCustomerCnt, LookIn:=xlValues)
            If Not maxCustomerRng Is Nothing Then
                maxCustomerRng.EntireColumn.Copy recordSht.Cells(1, lCol + 1)
            End If
        End With
    
        Set maxCustomerRng = Nothing
        Set dailySht = Nothing
        Set recordSht = Nothing
    End Sub
    
每次运行代码时,我都会在下一行得到一个“运行时错误“1004”:对象“U工作表失败”的方法“范围”(它附加到第二个工作表上的按钮)

这是表格:

Customer data   7:00:00 AM  7:30:00 AM  8:00:00 AM  8:30:00 AM  9:00:00 AM  
Number of customers 33         37         110          250        84
Amount spent        65         50          70           85        60
Average time spent  12         10           8           17        10
有人能帮我找出代码的错误吗?

而不是

.Range(Cells(2, 1), Cells(2, lColDaily)) 
试一试

而不是

.Range(Cells(2, 1), Cells(2, lColDaily)) 
试一试


Mrigs注释正确,请使用
.Range(.Cells(2,1),.Cells(2,lColDaily))

正如解释(因为错误非常常见):
单元格(无前导点)指的是活动工作表
.cells
(带点)在您的案例中引用了
with
-语句的工作表,您可以改为编写
dailySht.cells


因此,在您的声明中,您要求工作表的范围
dailySht
,该范围由活动工作表中的单元格定义(很可能是不同的工作表),这是不可能的,并且会引发您看到的错误。

Mrigs注释正确,请使用
.Range(.cells(2,1),.cells(2,lColDaily))

正如解释(因为错误非常常见):
单元格(无前导点)指的是活动工作表
.cells
(带点)在您的案例中引用了
with
-语句的工作表,您可以改为编写
dailySht.cells


因此,在您的声明中,您要求工作表的范围
dailySht
,该范围由活动工作表中的单元格定义(很可能是不同的工作表),这是不可能的,并且会引发您看到的错误。

就是这样。谢谢有没有办法防止数据重复?也就是说,一天内不记录多个数据?@aab-这是完全不同的问题。我建议你接受对你有帮助的答案,然后再问一个新问题,以此结束问题。新问题也会吸引更多的人,而不仅仅是我们两个。谢谢。@aab-请在这里提及你新问题的链接,这样我也可以看一看。这是我新问题的链接,就是它。谢谢有没有办法防止数据重复?也就是说,一天内不记录多个数据?@aab-这是完全不同的问题。我建议你接受对你有帮助的答案,然后再问一个新问题,以此结束问题。新问题也会吸引更多的人,而不仅仅是我们两个。谢谢。@aab-请在这里提及你新问题的链接,这样我也可以看一下。这是我新问题的链接,我不知道。谢谢你的解释,我不知道。谢谢你的解释。
.Range(.Cells(2, 1), .Cells(2, lColDaily))