如何用vba循环读取多个文本框控件中的内容,比如TB1,TB2,TB3

如何用vba循环读取多个文本框控件中的内容,比如TB1,TB2,TB3,第1张

建议使用控件数组。

举个例子:判断这些文本框中的数字是否大于10,若是的话则将这些文本框中的内容改成红色的字体

将TB1、TB2、TB3创建为一个名为Text1的控件数组

For i=0 to ListCount-1

If Val(Text1(i)Text)>10 Then Text1(i)ForeColor=VbRed

Next i

VBA不能直接读取剪切板的内容,需要分两步,先将剪切板内容保存到JPG,再从JPG中读取到IMAGE控件。

代码如下:

Option Explicit

Private Type GUID

Data1 As Long

Data2 As Integer

Data3 As Integer

Data4(0 To 7) As Byte

End Type

Private Type GdiplusStartupInput

GdiplusVersion As Long

DebugEventCallback As Long

SuppressBackgroundThread As Long

SuppressExternalCodecs As Long

End Type

Private Type EncoderParameter

GUID As GUID

NumberOfValues As Long

type As Long

Value As Long

End Type

Private Type EncoderParameters

Count As Long

Parameter As EncoderParameter

End Type

Private Declare Sub keybd_event Lib "user32" _

(ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Private Declare Function GdiplusStartup Lib "GDIPlus" (token As Long, inputbuf As GdiplusStartupInput, ByVal outputbuf As Long) As Long

Private Declare Function GdiplusShutdown Lib "GDIPlus" (ByVal token As Long) As Long

Private Declare Function GdipCreateBitmapFromHBITMAP Lib "GDIPlus" (ByVal hbm As Long, ByVal hpal As Long, Bitmap As Long) As Long

Private Declare Function GdipDisposeImage Lib "GDIPlus" (ByVal Image As Long) As Long

Private Declare Function GdipSaveImageToFile Lib "GDIPlus" (ByVal Image As Long, ByVal filename As Long, clsidEncoder As GUID, encoderParams As Any) As Long

Private Declare Function CLSIDFromString Lib "ole32" (ByVal str As Long, id As GUID) As Long

'Private Declare Function GdipCreateBitmapFromFile Lib "GDIPlus" (ByVal filename As Long, Bitmap As Long) As Long

Private Declare Function IsClipboardFormatAvailable Lib "user32" (ByVal wFormat As Integer) As Long

Private Declare Function GetClipboardData Lib "user32" (ByVal wFormat As Integer) As Long

Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long '剪贴板

Private Declare Function CloseClipboard Lib "user32" () As Long

Const CF_BITMAP = 2

Private Sub My_Screen_1()

Call keybd_event(vbKeySnapshot, 0, 0, 0)

DoEvents

End Sub

Private Sub My_Screen_2()

Call keybd_event(vbKeySnapshot, 1, 1, 1)

DoEvents

End Sub

Public Function Screen2JPG(ByVal filename As String, Optional ByVal quality As Byte = 80) As Boolean

Dim tSI As GdiplusStartupInput

Dim lRes As Long

Dim lGDIP As Long

Dim lBitmap As Long

Dim hBitmap As Long

'复制单元格区域图像

''''''RangeCopyPicture xlScreen, xlBitmap

My_Screen_2

'打开剪贴板

OpenClipboard 0&

'获取剪贴板中bitmap数据的句柄

hBitmap = GetClipboardData(CF_BITMAP)

'关闭剪贴板

CloseClipboard

'初始化 GDI+

tSIGdiplusVersion = 1

lRes = GdiplusStartup(lGDIP, tSI, 0)

If lRes = 0 Then

'从句柄创建 GDI+ 图像

lRes = GdipCreateBitmapFromHBITMAP(hBitmap, 0, lBitmap)

If lRes = 0 Then

Dim tJpgEncoder As GUID

Dim tParams As EncoderParameters

'初始化解码器的GUID标识

CLSIDFromString StrPtr("{557CF401-1A04-11D3-9A73-0000F81EF32E}"), tJpgEncoder

'设置解码器参数

tParamsCount = 1

With tParamsParameter ' Quality

'得到Quality参数的GUID标识

CLSIDFromString StrPtr("{1D5BE4B5-FA4A-452D-9CDD-5DB35105E7EB}"), GUID

NumberOfValues = 1

type = 4

Value = VarPtr(quality)

End With

'保存图像

lRes = GdipSaveImageToFile(lBitmap, StrPtr(filename), tJpgEncoder, tParams)

'销毁GDI+图像

GdipDisposeImage lBitmap

End If

'销毁 GDI+

GdiplusShutdown lGDIP

End If

Screen2JPG = Not lRes

End Function

'最后,只要用载入即可。

ImagePicture = LoadPicture(filename)

'单元格触发事件

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If TargetCount = 1 Then

MsgBox "当前单元格的行号是:" & TargetRow

End If

End Sub

用命令按钮的宏:

Sub YY()

MsgBox "当前单元格的行号:" & ActiveCellRow

End Sub

首先 找到 找到外部程序的主窗口的句柄 然后再查找其子窗口父窗口用findwindow就可以 子窗口要指定要查找窗口的classwindows 中每一个窗口都有一个类的比如记事本的文本框 类名叫edit VB的textbox 类名叫ThunderRT6TextBox等等

以上就是关于如何用vba循环读取多个文本框控件中的内容,比如TB1,TB2,TB3全部的内容,包括:如何用vba循环读取多个文本框控件中的内容,比如TB1,TB2,TB3、vba 怎么读取系统剪贴板中的图片到image控件、VBA中怎样获取按钮控件下方单元格的内容等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9510723.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存