我正在寻找一种复制一系列单元格的方法,但只复制包含值的单元格.
在我的Excel工作表中,我有从A1-A18运行的数据,B是空的和C1-C2.现在我想复制包含值的所有单元格.
With Range("A1")
Range(.Cells(1, 1), .End(xlDown).Cells(50, 3)).Copy
End With
Run Code Online (Sandbox Code Playgroud)
这将复制A1-C50中的所有内容,但我只希望复制A1-A18和C1-C2,好像它们包含数据一样.但它需要以一种方式形成,一旦我有B或我的范围扩展数据,这些也会被复制.
'So the range could be 5000 and it only selects the data with a value.
With Range("A1")
Range(.Cells(1, 1), .End(xlDown).Cells(5000, 3)).Copy
End With
Run Code Online (Sandbox Code Playgroud)
谢谢!
感谢Jean,当前代码:
Sub test()
Dim i As Integer
Sheets("Sheet1").Select
i = 1
With Range("A1")
If .Cells(1, 1).Value = "" Then
Else
Range(.Cells(1, 1), .End(xlDown)).Copy Destination:=Sheets("Sheet2").Range("A" & i)
x = x + 1
End If
End With
Sheets("Sheet1").Select
x = 1
With Range("B1")
' Column B may …Run Code Online (Sandbox Code Playgroud) 我创建了一个宏来刷新我的工作簿(重新计算值、刷新链接等)。
刷新链接的代码工作正常,但是当它遇到RefreshAll以下错误时。
ActiveWorkbook.UpdateLink Name:="F:\klanten.xlsm", Type:=xlExcelLinks
ActiveWorkbook.RefreshAll
Run Code Online (Sandbox Code Playgroud)

感谢所有帮助!
我希望我的宏更新整个工作簿的字体,大小和verticalaligment,但我能找到的所有选项都可以逐页完成.这不是太麻烦,但我想知道你是否不能全局设置这些并用1命令更新整个工作簿.
Sub SetFormat()
With Sheets(1)
.Cells.Font.Name = "Segoe UI"
.Cells.Font.Size = 10
.Cells.VerticalAlignment = xlCenter
End With
End Sub
Run Code Online (Sandbox Code Playgroud) 我已经完成了我的宏!但运行它有一种更简单的方法吗?
我知道两种方式
打开Visual Basic,选择正确的宏并运行!
查看宏,选择正确的宏并运行!
有更简单的方法,还是这两种方式?
谢谢
我想检查某段文本的一系列单元格.这个文本总是在我的文档中,除了它的单元格是可变的(列始终是B).因此,我检查从1:75开始的范围是否有任何单元格包含一段文本,但它似乎不起作用.
Dim FoundRange As Range
Set FoundRange = Cells.Find("5/7 binnen 4h")
Range("I" & EmptyCell + 2).Value = ... (value of cell I on same row as B)
Run Code Online (Sandbox Code Playgroud)
我正在寻找的Cell总是包含这个文本,Onderhoud 5/7 binnen 4h但它的位置可能会有所不同,这就是为什么我只需要检查它是否包含任何一个.当我找到那个单元格时,我需要在同一行上的值I.
欢迎任何建议!
我有一列DeviceName中Sheet1,它包含了类似的数据RTRNY653, SWNY653, ....在Sheet2我有一列InterfaceName,它包含接口名称,并在年底的设备名称列太FA_01_RTRNY653, FA_12_SWNY653, ...
得到QoSID链接的标准公式DeviceName将是=VLOOKUP(DeviceName;Sheet2!InterfaceName;2;0),但因为InterfaceName包含更多文本,我被卡住了...
问:我怎样才能创建一个使用一个VLOOKUP函数DeviceName从Sheet1,看上去它在InterfaceName上Sheet2,并得到我列QoSID的Sheet2.
示例数据
Sheet1
DeviceName
-----------
RTRNY653
SWNY653
RTRWS215
RTRCH888
Sheet2
InterfaceName | QoSID
--------------------------
FA_01_RTRNY653 | 1
FA_12_SWNY653 | 2
S_00_RTRWS215 | 1
S_01_RTRWS215 | 3
Run Code Online (Sandbox Code Playgroud) 我看了,但找不到解决方案.
你如何增加变量?就像在任何其他语言中一样,您只需在循环结束之前执行++(变量名称).在我的例子中,我想增加J.
Dim j as integer
j = 13
FinalRow = Range("B15").End(xlUp).Row
For i = 9 To FinalRow
Range("B" & i).Copy Destination:=Sheets("Design").Range("A" & j)
J++
Next i
Run Code Online (Sandbox Code Playgroud)
代码从B9-B15循环,并从A13向下粘贴Designsheet中的信息.
对于我的登录控件,我在SQL语句中使用参数.麻烦的是,如果人们使用SQLinjection,我担心他们也能够进入.
我有两个文本框,值传递给SQL语句,这将检查是否在数据库中找到值.
有没有办法确保这是不可能的?我知道在PHP中你需要使用文本框前面的东西.
谢谢你的时间!
我有一个带有下拉列表的转发器.当用户更改其索引时,我希望标签更改其值.(ddlSizes值来自MySQL DB)
Sizes.aspx
<asp:DropDownList ID="ddlSizes" runat="server" AutoPostBack="True" DataSourceID="objdsSizes" DataTextField="SizeName" DataValueField="SizeID" />
<asp:Label ID="lbldummy" runat="server" Text=""></asp:Label>
Run Code Online (Sandbox Code Playgroud)
Sizes.aspx.vb
Protected Sub ddlSizes_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlSizes.SelectedIndexChanged
lbldummy = ddlSizes.value
End Sub
Run Code Online (Sandbox Code Playgroud)
但是无法识别ddlSizes.SelectedIndexChanged.所以价值lbldummy不会改变.
有什么建议?谢谢.
我似乎无法让我的第二个循环正确.我正在寻找价值'Persoonlijke prijslijst'的细胞.一旦我有这个单元格,我需要上升两个并删除8.当我调试时,它说temp = 0所以我认为它在我的第二个for循环中.
Dim i As Integer
For i = 1 To 800
Range("C" & i).Select
If Range("C" & i).Value = "Persoonlijke prijslijst" Then
Dim temp As Integer
For temp = i - 2 To temp + 8
Range("C" & temp).EntireRow.Delete Shift:=xlToLeft
Next temp
End If
Next i
Run Code Online (Sandbox Code Playgroud)